Compare commits

...

102 Commits
fifo ... master

Author SHA1 Message Date
Austen Adler
bcd5ee2e60 Allow calculator to be customized as a parameter 2024-10-30 20:53:57 -04:00
Austen Adler
cf5bf59333 Run cargo update 2024-10-30 20:41:58 -04:00
Austen Adler
0d2a63001f Fix slice_group_by 2024-05-29 16:18:08 -04:00
Austen Adler
3450d899d7 Cargo update 2023-09-12 23:01:37 -04:00
Austen Adler
6747585322 Default to ^ register for set operations 2023-09-12 23:01:34 -04:00
Austen Adler
9f00cb94da Fix build warning 2023-09-12 23:01:24 -04:00
Austen Adler
d939c9481b Clean up keep_every command 2023-05-19 23:52:06 -04:00
Austen Adler
7b5055ac5d Add keep_every command 2023-05-17 21:40:31 -04:00
Austen Adler
453b4e97c2 Update clap 2023-05-17 21:36:14 -04:00
Austen Adler
342e59727a Update commands to use x instead of <a-x> due to new kak change 2023-03-11 18:05:42 -05:00
Austen Adler
b5e854521f Format 2023-02-09 23:27:45 -05:00
Austen Adler
8ec3ab3338 Add join command 2023-02-09 23:27:45 -05:00
Austen Adler
caa3953f2c Add rev command 2023-01-24 20:55:21 -05:00
Austen Adler
b714576b08 Update readme 2023-01-24 20:53:13 -05:00
Austen Adler
6d38f80e33 Better set errors 2023-01-24 20:53:01 -05:00
Austen Adler
4d2bf938b5 For set operations, default to ^ and _ registers 2022-11-06 11:16:04 -05:00
Austen Adler
0a80cfe7e3 Fix whitespace in set 2022-11-06 11:15:45 -05:00
Austen Adler
d1957a47c1 Use get_register_selections 2022-11-04 16:04:16 -04:00
Austen Adler
eda1d2bb96 Quote response fifo 2022-10-06 21:26:08 -04:00
Austen Adler
46d94c3343 Cleanup 2022-10-06 21:24:43 -04:00
Austen Adler
64959d6069 Fix empty registers 2022-10-06 21:09:13 -04:00
Austen Adler
526b6fef24 Use yank registers for set 2022-10-02 21:41:09 -04:00
Austen Adler
fef1e7b820 Add docs and cleanup 2022-10-02 21:33:59 -04:00
Austen Adler
c9674e9bf2 Use Cow for set 2022-10-02 19:59:50 -04:00
Austen Adler
0642b909c3 Use cow for keys 2022-10-02 16:40:56 -04:00
Austen Adler
e0be452bdb Cleanup 2022-10-02 13:12:58 -04:00
Austen Adler
3ac74d08af Rename stdin to xargs 2022-10-02 12:48:04 -04:00
Austen Adler
801c484d76 Update stdin 2022-10-02 12:45:07 -04:00
Austen Adler
093689c02b Use cow for xlookup 2022-10-02 10:46:51 -04:00
Austen Adler
d897fdea87 Add todo for more efficient get_hash 2022-10-02 10:43:21 -04:00
Austen Adler
b560e47dc2 Add tests for xlookup; add reg function 2022-10-02 10:42:59 -04:00
Austen Adler
c9974d4d29 Fix clippy errors 2022-10-02 09:57:37 -04:00
Austen Adler
b875e09927 Increase speed by using shell-words instead of shellwords 2022-09-07 18:52:30 -04:00
Austen Adler
6745a8ad5b Add xlookup 2022-09-06 00:28:00 -04:00
Austen Adler
3660a35923 Fix compilation issue 2022-09-03 02:12:07 -04:00
Austen Adler
ed350dc222 Update docs 2022-09-03 02:03:58 -04:00
Austen Adler
f0bf297fae Add incr/decr 2022-09-03 02:03:10 -04:00
Austen Adler
37a0066acf Cleanup 2022-09-03 02:02:44 -04:00
Austen Adler
94ad2dc4ef Add invert by line option 2022-09-03 02:02:12 -04:00
Austen Adler
e9775eb222 Make shell-script-candidates work more 2022-08-15 20:40:16 -04:00
Austen Adler
ffb978a60d Add no newline option for box and invert 2022-08-15 20:40:04 -04:00
Austen Adler
82dacf2482 Add get_selections_desc_unsorted 2022-08-14 20:44:44 -04:00
Austen Adler
e3bdb745bf Cleanup invert 2022-08-11 17:37:08 -04:00
Austen Adler
3e84e06fb9 Add support for accepting AsRef<str> 2022-08-11 16:22:00 -04:00
Austen Adler
a2a09715de Cleanup 2022-08-11 16:14:47 -04:00
Austen Adler
6407d2de72 Add inverse alias for invert 2022-08-11 16:08:59 -04:00
Austen Adler
19a0a99ed3 Cleanup box function 2022-08-11 16:08:20 -04:00
Austen Adler
8a165309ba Implement invert function 2022-08-11 16:08:04 -04:00
Austen Adler
42d37a6c02 Implement box function 2022-08-11 16:07:26 -04:00
Austen Adler
8f7e5c52fe Remove comments 2022-08-09 18:18:32 -04:00
Austen Adler
780ea7c2f9 Fix all set operations on selections 2022-08-09 18:18:06 -04:00
Austen Adler
d10a02573b Fix subtracting 2022-08-09 17:51:32 -04:00
Austen Adler
8a3a77df55 Start working on new features 2022-08-09 17:45:46 -04:00
Austen Adler
0aacd16f50 Allow executing draft keys before getting selections and subselections 2022-07-17 21:44:42 -04:00
Austen Adler
85cb79c331 Use MaybeSplit 2022-07-17 20:32:35 -04:00
Austen Adler
b2d6e18c82 Format 2022-07-15 18:58:42 -04:00
Austen Adler
d69cec4d73 Add subtract function 2022-07-15 18:50:40 -04:00
Austen Adler
4923a86b5f Update docs 2022-07-10 16:36:14 -04:00
Austen Adler
fe3f10387c Format 2022-07-10 16:34:29 -04:00
Austen Adler
9d982a2723 Use draft selections to not mangle the current selection 2022-07-07 01:24:21 -04:00
Austen Adler
b6114b607c Use utils get_key 2022-07-07 00:28:25 -04:00
Austen Adler
9fd54770ab Use AsRef for passing Selections and Registers 2022-07-07 00:28:07 -04:00
Austen Adler
ea32174522 Add ability to do set operations on current selection only 2022-07-07 00:14:23 -04:00
Austen Adler
296ac24d81 Add basic autocomplete 2022-07-06 22:11:41 -04:00
Austen Adler
df610c7e03 Error if empty list is passed to set selection 2022-07-06 21:29:02 -04:00
Austen Adler
fac1ab37ea Add box/square command 2022-07-06 21:14:09 -04:00
Austen Adler
e7596f0276 Add help messages 2022-06-09 18:32:34 -04:00
Austen Adler
a63ae7d0ed Fix trim newline preserving 2022-06-09 18:11:11 -04:00
Austen Adler
d6a3fccd41 Fix clippy warnings 2022-06-09 18:11:03 -04:00
Austen Adler
01a7063c22 Add set command 2022-06-07 18:01:49 -04:00
Austen Adler
ec3c685a16 Remove kak 2022-06-05 01:03:56 -04:00
Austen Adler
f1e326fbd7 Refactor kak code to kakplugin 2022-06-05 00:59:05 -04:00
Austen Adler
3d867c7f0d Start splitting code into module 2022-06-04 23:45:05 -04:00
Austen Adler
42c20e6f1e Add stdin.rs 2022-05-09 22:24:14 -04:00
Austen Adler
d423f75989 Add xargs and stdin 2022-05-09 22:23:59 -04:00
Austen Adler
8f3e1f5dc1 Add xargs 2022-05-08 13:54:29 -04:00
Austen Adler
6ead19042d Add trim command 2022-04-02 19:27:30 -04:00
Austen Adler
3014e9e6af Update demo asciinema 2022-03-12 18:29:57 -05:00
Austen Adler
ddcdd2b487 Start work on potential iterator approach 2022-03-12 18:29:47 -05:00
Austen Adler
92de282027 Update documentation 2022-03-12 18:18:09 -05:00
Austen Adler
cd821274c0 Add asciicast 2022-03-09 22:21:24 -05:00
Austen Adler
64cd9cbd9b Update readme 2022-03-09 22:17:22 -05:00
Austen Adler
84861d8574 Add optional regex to uniq 2022-03-09 22:10:25 -05:00
Austen Adler
9b847eff0d Refactor sorting selections 2022-03-09 21:25:50 -05:00
Austen Adler
4bf376d802 An unbelieveable amount of changes. too many to count really 2022-03-09 20:30:41 -05:00
Austen Adler
ee42bcf67e Fix all clippy warnings 2022-03-07 21:57:27 -05:00
Austen Adler
378622a00f Add required flushes 2022-03-07 21:54:10 -05:00
Austen Adler
c5aca50582 Use BufWriter instead of File 2022-03-07 21:50:52 -05:00
Austen Adler
2e2fdb200d Use a BTreeSet of hashesh instead of a HashMap of unit 2022-03-06 21:29:15 -05:00
Austen Adler
1780b2a60d Rename so that prefixes are not repeated 2022-03-06 21:28:16 -05:00
Austen Adler
9761e5c0c5 Add sort 2022-02-27 18:14:42 -05:00
Austen Adler
0a9ccdbf27 Add uniq 2022-02-27 18:14:31 -05:00
Austen Adler
e5b86831d3 Format import granularity 2022-02-21 18:30:32 -05:00
Austen Adler
4f262eccd5 Fix error for subselection sort 2022-02-21 18:30:17 -05:00
Austen Adler
3b7646c04e Cleanup and add comments 2022-02-21 18:27:46 -05:00
Austen Adler
77bb2c859b Continue work 2022-02-21 18:08:18 -05:00
Austen Adler
caa4e82757 Many changes including shuf 2022-02-21 17:23:34 -05:00
Austen Adler
04f9c177c5 Start work on sortable selections 2022-02-21 11:01:17 -05:00
Austen Adler
b0e90f63b6 Make sort a subcommand 2022-02-12 22:50:30 -05:00
Austen Adler
cd566d1708 Merge branch 'fifo' 2022-02-11 23:33:47 -05:00
Austen Adler
095b3d3f11 Update cargo.toml 2022-02-11 23:27:51 -05:00
Austen Adler
984d0370a3 Add demo asciinema 2022-01-25 00:14:05 -05:00
27 changed files with 5102 additions and 326 deletions

505
Cargo.lock generated
View File

@ -1,104 +1,196 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "aho-corasick"
version = "0.7.18"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "alphanumeric-sort"
version = "1.4.3"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20e59b2ccb4c1ffbbf45af6f493e16ac65a66981c85664f1587816c0b08cd698"
checksum = "d67c60c5f10f11c6ee04de72b2dd98bb9d2548cbc314d22a609bfa8bd9e87e8f"
[[package]]
name = "atty"
version = "0.2.14"
name = "anstream"
version = "0.6.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
dependencies = [
"hermit-abi",
"libc",
"winapi",
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"is_terminal_polyfill",
"utf8parse",
]
[[package]]
name = "autocfg"
version = "1.0.1"
name = "anstyle"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56"
[[package]]
name = "bitflags"
version = "1.3.2"
name = "anstyle-parse"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
dependencies = [
"windows-sys",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
dependencies = [
"anstyle",
"windows-sys",
]
[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "3.0.10"
version = "4.5.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a30c3bf9ff12dfe5dae53f0a96e0febcd18420d1c0e7fad77796d9d5c4b5375"
checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
dependencies = [
"atty",
"bitflags",
"clap_builder",
"clap_derive",
"indexmap",
"lazy_static",
"os_str_bytes",
]
[[package]]
name = "clap_builder"
version = "4.5.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
"termcolor",
"textwrap",
]
[[package]]
name = "clap_derive"
version = "3.0.6"
version = "4.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "517358c28fcef6607bf6f76108e02afad7e82297d132a6b846dcc1fc3efcd153"
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
dependencies = [
"heck",
"proc-macro-error",
"heck 0.5.0",
"proc-macro2",
"quote",
"syn",
"syn 2.0.85",
]
[[package]]
name = "hashbrown"
version = "0.11.2"
name = "clap_lex"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
[[package]]
name = "colorchoice"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "duct"
version = "0.13.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
dependencies = [
"libc",
"once_cell",
"os_pipe",
"shared_child",
]
[[package]]
name = "either"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "evalexpr"
version = "7.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d4fd7bd9e32c1205549decf6f36772d7b606a579b26afaffa335ae148151a5d"
[[package]]
name = "getrandom"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "heck"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
version = "0.1.19"
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itertools"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
"libc",
"either",
]
[[package]]
name = "indexmap"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
name = "kakplugin"
version = "0.1.0"
dependencies = [
"autocfg",
"hashbrown",
"shell-words",
]
[[package]]
@ -107,84 +199,136 @@ version = "0.1.0"
dependencies = [
"alphanumeric-sort",
"clap",
"duct",
"either",
"evalexpr",
"itertools",
"kakplugin",
"linked-hash-map",
"linked_hash_set",
"rand",
"regex",
"shellwords",
"strum",
"strum_macros",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.113"
version = "0.2.161"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eef78b64d87775463c549fbd80e19249ef436ea3bf1de2a1eb7e717ec7fab1e9"
checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1"
[[package]]
name = "linked-hash-map"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
[[package]]
name = "linked_hash_set"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588"
dependencies = [
"linked-hash-map",
]
[[package]]
name = "memchr"
version = "2.4.1"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "os_str_bytes"
version = "6.0.0"
name = "once_cell"
version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "os_pipe"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
dependencies = [
"memchr",
"libc",
"windows-sys",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
name = "ppv-lite86"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
"zerocopy",
]
[[package]]
name = "proc-macro2"
version = "1.0.36"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
dependencies = [
"unicode-xid",
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.15"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
version = "1.5.4"
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
"rand_chacha",
"rand_core",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core",
]
[[package]]
name = "rand_core"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
"getrandom",
]
[[package]]
name = "regex"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
@ -193,91 +337,190 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.6.25"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "shellwords"
name = "rustversion"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
[[package]]
name = "shared_child"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c"
dependencies = [
"libc",
"windows-sys",
]
[[package]]
name = "shell-words"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89e515aa4699a88148ed5ef96413ceef0048ce95b43fbc955a33bde0a70fcae6"
dependencies = [
"lazy_static",
"regex",
]
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
[[package]]
name = "strsim"
version = "0.10.0"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
"syn 1.0.109",
]
[[package]]
name = "syn"
version = "1.0.86"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
"unicode-ident",
]
[[package]]
name = "termcolor"
version = "1.1.2"
name = "syn"
version = "2.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56"
dependencies = [
"winapi-util",
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "textwrap"
version = "0.14.2"
name = "unicode-ident"
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-xid"
name = "utf8parse"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "version_check"
version = "0.9.4"
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "winapi"
version = "0.3.9"
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
"windows-targets",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"winapi",
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "zerocopy"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"byteorder",
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.85",
]

View File

@ -1,3 +1,6 @@
# syntax = denzp/cargo-wharf-frontend
# cargo-features = ["strip"]
[package]
name = "kakutils-rs"
version = "0.1.0"
@ -6,13 +9,43 @@ license = "MIT"
readme = "README.adoc"
keywords = ["cli", "kakoune"]
[workspace]
members = [
".",
"./kakplugin/",
]
[[package.metadata.wharf.binary]]
name = "kakutils-rs"
destination = "/bin/kakutils-rs"
[package.metadata.wharf.builder]
# image = "rust"
# image = "ekidd/rust-musl-builder"
image = "clux/muslrust:nightly-2021-03-02"
target = "x86_64-unknown-linux-musl"
[package.metadata.wharf.output]
image = "scratch"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
regex = "1"
clap = {version = "3", features = ["derive", "env"]}
clap = { version = "4", features = ["derive", "env"] }
alphanumeric-sort = "1"
shellwords = "1"
# shellwords = {version = "1", path = "../../../git/rust-shellwords/"}
# shellwords = "1"
rand = "0.8"
evalexpr = "7"
kakplugin = {path = "./kakplugin/"}
linked-hash-map = "0.5.4"
linked_hash_set = "0.1.4"
strum_macros = "0.24"
strum = { version = "0.24", features = ["derive"] }
itertools = "0.10.5"
either = "1.8.1"
duct = "0.13.7"
[profile.release]
lto = true
@ -20,3 +53,4 @@ opt-level = "z"
strip = true
codegen-units = 1
panic = "abort"
debug = true

File diff suppressed because one or more lines are too long

608
dist/demo.asciinema vendored Normal file
View File

@ -0,0 +1,608 @@
{"version": 2, "width": 129, "height": 24, "timestamp": 1646881443, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.032641, "o", "\u001b[?2004hbash-5.1$ "]
[0.872094, "o", "t"]
[0.952536, "o", "m"]
[1.136197, "o", "u"]
[1.229063, "o", "x"]
[1.303592, "o", " "]
[1.390416, "o", "a"]
[1.746925, "o", "\r\n"]
[1.747361, "o", "\u001b[?2004l\r"]
[1.755172, "o", "\u001b[?1049h\u001b[22;0;0t\u001b[?1h\u001b=\u001b[H\u001b[2J\u001b[?12l\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;24r\u001b[>c\u001b[>q\u001b[1;4H\u001b[?25l"]
[1.756211, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;235m\u001b[H 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;235mtage(\"Build\") { # Step 1\u001b[39m \u001b[38;5;242m\r\n 2|\u001b[38;5;223m 8+3\u001b[39m \u001b[38;5;242m\r\n 3|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n 4|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m \u001b[38;5;242m\r\n 5|\u001b[38;5;223m math::log2(8)\u001b[39m \u001b[38;5;242m\r\n 6|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n 7|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m \u001b[38;5;242m\r\n 8|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m "]
[1.756541, "o", " \u001b[38;5;242m\r\n 9|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n10|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m \u001b[38;5;242m\r\n11|\u001b[38;5;223m not_a_formula\u001b[39m \u001b[38;5;242m\r\n12|\u001b[38;5;223m}\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m "]
[1.756633, "o", " \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \r\n \u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[39m\u001b[49m\u001b[1;66Hkakutils - sort/shuf/uniq/bc on selections\u001b[K\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 1 \" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;4H\u001b[?7727h"]
[1.761163, "o", "\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;24r\u001b[1;4H\u001b[?25l"]
[1.761891, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;235m\u001b[H 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;235mtage(\"Build\") { # Step 1\u001b[39m \u001b[38;5;242m\r\n 2|\u001b[38;5;223m 8+3\u001b[39m \u001b[38;5;242m\r\n 3|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n 4|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m \u001b[38;5;242m\r\n 5|\u001b[38;5;223m math::log2(8)\u001b[39m \u001b[38;5;242m\r\n 6|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n 7|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m \u001b[38;5;242m\r\n 8|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m "]
[1.761987, "o", " \u001b[38;5;242m\r\n 9|\u001b[38;5;223m}\u001b[39m \u001b[38;5;242m\r\n10|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m \u001b[38;5;242m\r\n11|\u001b[38;5;223m not_a_formula\u001b[39m \u001b[38;5;242m\r\n12|\u001b[38;5;223m}\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m "]
[1.762291, "o", " \u001b[38;5;239m\r\n~\u001b[39m \u001b[38;5;239m\r\n~\u001b[39m \r\n \u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[39m\u001b[49m\u001b[1;66Hkakutils - sort/shuf/uniq/bc on selections\u001b[K\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 1 \" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[6.756807, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[1;4H"]
[6.757195, "o", "\u001b[62CPrevents spawning a new command for each selection\u001b[4G"]
[10.980515, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[1;4H"]
[10.980969, "o", "\u001b[62CSort by selection content (sort)\u001b[4G"]
[13.5668, "o", "\u001b[2;66H Sorts on entire selection\u001b[1;4H"]
[14.651784, "o", "\u001b[3;66H Sorts alphabetically/numerically\u001b[1;4H"]
[16.170473, "o", "\u001b[4;66H Example: Sorts by stage name\u001b[1;4H"]
[18.377594, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 4 \" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[18.378204, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m11|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;17H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;175m4 s"]
[18.378497, "o", "els (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[19.373708, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223mw\u001b[39m\u001b[48;5;235m\u001b[19X\u001b[19C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[19.374399, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 pr\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[23;2H"]
[19.425007, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[19.425643, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223mw\u001b[39m\u001b[48;5;235m\u001b[19X\u001b[19C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[19.515965, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[19.516075, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[18X\u001b[18C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[19.56676, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[18X\u001b[18C\u001b[38;5;223mdemo-file."]
[19.567105, "o", "txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[19.567325, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[19.611261, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[17X\u001b[17C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[19.6114, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[19.662153, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[19.71277, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[19.71312, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[16X\u001b[16C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[19.822737, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[19.823099, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms so\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[19.934083, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[19.934196, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sor\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[20.074069, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[21.141314, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[23;1H\u001b[38;5;223mSorted 4 selections …le.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[21.141531, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[23.078429, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[23.078918, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;108mtage(\"Assemble\") { # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\u001b[3;1H\u001b[38;5;242m 3|\u001b[38;5;223m\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Build\") { # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\u001b[6;1H\u001b[38;5;242m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\u001b[9;1H\u001b[38;5;242m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\u001b[12;1H\u001b[38;5;242m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[23.407905, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:5 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[23.408565, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstag\u001b[38;5;235m\u001b[48;5;223me\u001b[38;5;223m\u001b[48;5;235m(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstag\u001b[38;5;235m\u001b[48;5;242me\u001b[38;5;223m\u001b[48;5;235m(\"Build\") { # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstag\u001b[38;5;235m\u001b[48;5;242me\u001b[38;5;223m\u001b[48;5;235m(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstag\u001b[38;5;235m\u001b[48;5;242me\u001b[38;5;223m\u001b[48;5;235m(\"Make\") { # Step 100\u001b[39m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:5 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;8H\u001b(B\u001b[m"]
[23.705194, "o", "\u001b[57C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:7 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;8H"]
[23.705576, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage\u001b[48;5;108m(\u001b[38;5;235m\u001b[48;5;223m\"\u001b[38;5;223m\u001b[48;5;235mAssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage\u001b[38;5;242m\u001b[48;5;108m(\u001b[38;5;235m\u001b[48;5;242m\"\u001b[38;5;223m\u001b[48;5;235mBuild\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage\u001b[38;5;242m\u001b[48;5;108m(\u001b[38;5;235m\u001b[48;5;242m\"\u001b[38;5;223m\u001b[48;5;235mCompile\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage\u001b[38;5;242m\u001b[48;5;108m(\u001b[38;5;235m\u001b[48;5;242m\"\u001b[38;5;223m\u001b[48;5;235mMake\") { # Step 100\u001b[39m\u001b[35X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:7 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;10H\u001b(B\u001b[m"]
[24.224534, "o", "\u001b[55C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:15 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;10H"]
[24.224967, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[48;5;108mAssembl\u001b[38;5;235m\u001b[48;5;223me\u001b[38;5;223m\u001b[48;5;235m\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"\u001b[38;5;242m\u001b[48;5;108mBuil\u001b[38;5;235m\u001b[48;5;242md\u001b[38;5;223m\u001b[48;5;235m\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"\u001b[38;5;242m\u001b[48;5;108mCompil\u001b[38;5;235m\u001b[48;5;242me\u001b[38;5;223m\u001b[48;5;235m\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;242m\u001b[48;5;108mMak\u001b[38;5;235m\u001b[48;5;242me\u001b[38;5;223m\u001b[48;5;235m\") { # Step 100\u001b[39m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:15 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;18H\u001b(B\u001b[m"]
[24.777366, "o", "\u001b[47C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;18H"]
[24.77779, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mA\u001b[38;5;223m\u001b[48;5;108mssemble\u001b[48;5;235m\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mB\u001b[38;5;242m\u001b[48;5;108muild\u001b[38;5;223m\u001b[48;5;235m\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mC\u001b[38;5;242m\u001b[48;5;108mompile\u001b[38;5;223m\u001b[48;5;235m\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mM\u001b[38;5;242m\u001b[48;5;108make\u001b[38;5;223m\u001b[48;5;235m\") { # Step 100\u001b[39m\u001b[35X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;11H\u001b(B\u001b[m"]
[25.107328, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;11H"]
[25.107684, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mA\u001b[38;5;223m\u001b[48;5;235mssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mB\u001b[38;5;223m\u001b[48;5;235muild\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mC\u001b[38;5;223m\u001b[48;5;235mompile\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mM\u001b[38;5;223m\u001b[48;5;235make\") { # Step 100\u001b[39m\u001b[35X\u001b[1;11H\u001b(B\u001b[m"]
[26.132601, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;11H"]
[26.132964, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mA\u001b[38;5;223m\u001b[48;5;235mssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mB\u001b[38;5;223m\u001b[48;5;235muild\") { # Step 1\u001b[39m\u001b[36X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;11H\u001b(B\u001b[m"]
[26.312649, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;11H"]
[26.313046, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mB\u001b[38;5;223m\u001b[48;5;235muild\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mC\u001b[38;5;223m\u001b[48;5;235mompile\") { # Step 5\u001b[39m\u001b[34X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;11H\u001b(B\u001b[m"]
[26.493408, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mC\u001b[38;5;223m\u001b[48;5;235mompile\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mM\u001b[38;5;223m\u001b[48;5;235make\") { # Step 100\u001b[39m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;11H\u001b(B\u001b[m"]
[26.4941, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:8 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[10;11H"]
[26.650855, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mA\u001b[38;5;223m\u001b[48;5;235mssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mM\u001b[38;5;223m\u001b[48;5;235make\") { # Step 100\u001b[39m\u001b[35X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;11H\u001b(B\u001b[m"]
[26.651523, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;11H"]
[26.818679, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;11H"]
[26.819077, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mA\u001b[38;5;223m\u001b[48;5;235mssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mB\u001b[38;5;223m\u001b[48;5;235muild\") { # Step 1\u001b[39m\u001b[36X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;11H\u001b(B\u001b[m"]
[26.973447, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;11H"]
[26.973833, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mB\u001b[38;5;223m\u001b[48;5;235muild\") { # Step 1\u001b[39m\u001b[36X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mC\u001b[38;5;223m\u001b[48;5;235mompile\") { # Step 5\u001b[39m\u001b[34X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;11H\u001b(B\u001b[m"]
[27.130301, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:8 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[7;11H"]
[27.130672, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mC\u001b[38;5;223m\u001b[48;5;235mompile\") { # Step 5\u001b[39m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mM\u001b[38;5;223m\u001b[48;5;235make\") { # Step 100\u001b[39m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;11H\u001b(B\u001b[m"]
[27.31312, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;223mA\u001b[38;5;223m\u001b[48;5;235mssemble\") { # Step 10\u001b[39m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"\u001b[38;5;235m\u001b[48;5;242mM\u001b[38;5;223m\u001b[48;5;235make\") { # Step 100\u001b[39m\u001b[35X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:8 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;11H\u001b(B\u001b[m"]
[27.313889, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:8 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;11H"]
[30.192174, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[1;11H"]
[30.192552, "o", "\u001b[55CSort by regular expression (sort \\d+)\u001b[11G"]
[33.460961, "o", "\u001b[2;66H Sort entire selection by regex match\u001b[1;11H"]
[35.760409, "o", "\u001b[3;66H Example: Sort by digits (1 < 5 < 10 < 100)\u001b[1;11H"]
[41.597814, "o", "\u001b[54C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;11H"]
[41.598457, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m11|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48"]
[41.598559, "o", ";5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[42.618124, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[42.618479, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[42.669496, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[42.794043, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[42.794155, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[42.844788, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[42.845665, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[42.845798, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[42.89974, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[42.899851, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[42.949748, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[43.090025, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[43.090326, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[43.228173, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[43.22832, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms so\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[43.327695, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sor\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[43.328162, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[43.507639, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[43.508142, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[8G"]
[43.573177, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[43.573789, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[43.748364, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort \\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[43.867028, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G"]
[43.86714, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort \\d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[44.032068, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G"]
[44.032448, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort \\d+\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[12G\u001b(B\u001b[m"]
[45.630872, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[23;1H\u001b[38;5;223mSorted 4 selections …le.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[45.631008, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[47.637649, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 [+]\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[47.637943, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;108mtage(\"Build\") { # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\u001b[3;1H\u001b[38;5;242m 3|\u001b[38;5;223m\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\u001b[6;1H\u001b[38;5;242m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Assemble\") { # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\u001b[9;1H\u001b[38;5;242m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\u001b[12;1H\u001b[38;5;242m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[48.288826, "o", "\u001b[48;5;235m\u001b[23;15H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[48.289369, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;4H"]
[48.3408, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Ste\u001b[38;5;235m\u001b[48;5;223m ╭──────────┤goto├───────────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ g,k: buffer top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ l: line end\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Assemble\") { # St\u001b[38;5;235m\u001b[48;5;223m │ h: line begin\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[48;5;108m 2^9+match::log2(10) \u001b[38;5;235m\u001b[48;5;223m │ i: line non blank start │\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;"]
[48.34093, "o", "5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ j: buffer bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m ╭──╮ │ e: buffer end\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│ │ │ t: window top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m @ @ \u001b[39m\u001b[48;5;235m\u001b[30X\u001b[38;5;235m\u001b[48;5;223m╭│ b: window bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ c: window center\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48"]
[48.341355, "o", ";5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ╯│ a: last buffer\u001b[39m\u001b[9X\u001b[9C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ f: file\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ .: last buffer change │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ J: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ K: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ H: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m"]
[48.341646, "o", "\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ L: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ I: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╰───────────────────────────╯\u001b[1;4H\u001b(B\u001b[m"]
[48.362273, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[48.363014, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step 1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step 10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5"]
[48.363255, "o", ";223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[48.716875, "o", "\u001b[48;5;235m\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[48.717515, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;28H"]
[48.768713, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 8\u001b[38;5;235m\u001b[48;5;223m ╭──────┤select inner surrounding object├───────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ b,(,): parenthesis block\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ B,{,}: brace block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223m m\u001b[38;5;235m\u001b[48;5;223m │ r,[,]: bracket block\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ a,<lt>,<gt>: angle block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ \",Q: double quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b["]
[48.769071, "o", "1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[38;5;223m 2\u001b[38;5;235m\u001b[48;5;223m │ ',q: single quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╭──╮ │ `,g: grave quote string\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ │ │ w: word\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[38;5;223m n\u001b[38;5;235m\u001b[48;5;223m @ @ ╭│ <a-w>: WORD\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ s: sentence\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││"]
[48.769402, "o", " ╯│ p: paragraph\u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ <space>: whitespaces\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ i: indent\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ u: argument\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ n: number\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ c: custom object desc\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;2"]
[48.769727, "o", "35m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-semicolon>: run command in object context │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ d: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-d>: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m╰──────────────────────────────────────────────╯\u001b[1;28H\u001b(B\u001b[m"]
[48.821255, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;28H"]
[48.822005, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[3"]
[48.8223, "o", "8;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[50.627336, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:27 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[1;28H"]
[50.627703, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;30H\u001b(B\u001b[m"]
[50.815651, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:29 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;30H"]
[50.816009, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;32H\u001b(B\u001b[m"]
[51.001591, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:26 [\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[7;32H\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:26 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;29H\u001b(B\u001b[m"]
[51.187349, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[10;29H"]
[51.187703, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[51.378712, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;30H\u001b(B\u001b[m"]
[51.379443, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:27 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;30H"]
[51.570478, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:29 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;30H"]
[51.570844, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;32H\u001b(B\u001b[m"]
[51.750378, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:26 [\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[7;32H"]
[51.750755, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:26 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;29H\u001b(B\u001b[m"]
[51.918268, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[10;29H"]
[51.918662, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[52.094473, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;30H\u001b(B\u001b[m"]
[52.094873, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:27 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;30H"]
[52.267807, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:29 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[4;30H\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;32H\u001b(B\u001b[m"]
[52.46856, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:26 [\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[7;32H"]
[52.468957, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:26 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;29H\u001b(B\u001b[m"]
[52.645943, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:04 09-Mar-22\u001b(B\u001b[m\u001b[10;29H"]
[52.646342, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[55.500685, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[1;28H"]
[55.501024, "o", "\u001b[38CLexicographic sort (sort -l \\d+)\u001b[28G"]
[57.180407, "o", "\u001b[2;66H Sorts Lexicographically\u001b[1;28H"]
[58.834302, "o", "\u001b[3;66H Example: 1 < 10 < 100 < 5\u001b[1;28H"]
[61.765042, "o", "\u001b[30m\u001b[42m\u001b[24;1H[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[1;28H"]
[62.899264, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[1;28H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242"]
[62.899404, "o", "m 8|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m11|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[63.381091, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[63.381486, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort \\d+\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[63.4307, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort \\d+\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[63.430887, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[64.096976, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[64.147573, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[64.148152, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[64.148541, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[64.181245, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[64.181587, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[64.231209, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[64.293961, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[64.294076, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[64.391333, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[64.391701, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms so\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[64.513431, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sor\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[64.660656, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[64.660796, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[64.741297, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[8G"]
[64.741671, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[64.805463, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[64.805586, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[64.991562, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G"]
[64.991973, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -l\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[65.051688, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -l \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[12G\u001b(B\u001b[m"]
[65.052201, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[12G"]
[65.249749, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -l \\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[5X\u001b[5C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[13G\u001b(B\u001b[m"]
[65.250365, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[13G"]
[65.329583, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[13G"]
[65.329962, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -l \\d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[4X\u001b[4C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[14G\u001b(B\u001b[m"]
[65.455183, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[14G"]
[65.455337, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sort -l \\d+\u001b[38;5;235m\u001b[48;5;223m \u001b[38;5;223m\u001b[48;5;235m demo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[15G\u001b(B\u001b[m"]
[66.679981, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[10;1H\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m11|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[23;1H\u001b[38;5;223mSorted 4 selections …le.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[66.680135, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[68.147788, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[3;4H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;108mtage(\"Build\") { # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\u001b[3;1H\u001b[38;5;242m 3|\u001b[38;5;223m\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Assemble\") { # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\u001b[6;1H\u001b[38;5;242m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\u001b[9;1H\u001b[38;5;242m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Step 5 \u001b[39m\u001b[48;5;235"]
[68.148139, "o", "m\u001b[33X\u001b[12;1H\u001b[38;5;242m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[68.483778, "o", "\u001b[48;5;235m\u001b[23;15H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[68.48431, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;4H"]
[68.536028, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Assemble\") { # St\u001b[38;5;235m\u001b[48;5;223m ╭──────────┤goto├───────────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[48;5;108m 2^9+match::log2(10) \u001b[38;5;235m\u001b[48;5;223m │ g,k: buffer top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ l: line end\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m │ h: line begin\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ i: line non blank start │\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;"]
[68.536401, "o", "5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ j: buffer bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Ste\u001b[38;5;235m\u001b[48;5;223m ╭──╮ │ e: buffer end\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│ │ │ t: window top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m @ @ \u001b[39m\u001b[48;5;235m\u001b[30X\u001b[38;5;235m\u001b[48;5;223m╭│ b: window bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ c: window center\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48"]
[68.536679, "o", ";5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ╯│ a: last buffer\u001b[39m\u001b[9X\u001b[9C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ f: file\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ .: last buffer change │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ J: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ K: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ H: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m"]
[68.536965, "o", "\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ L: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ I: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╰───────────────────────────╯\u001b[1;4H\u001b(B\u001b[m"]
[68.564645, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[68.565438, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step 1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Make\") { # Step 10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m11|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5"]
[68.565557, "o", ";223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[68.933673, "o", "\u001b[48;5;235m\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[68.934191, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;28H"]
[68.985927, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 8\u001b[38;5;235m\u001b[48;5;223m ╭──────┤select inner surrounding object├───────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ b,(,): parenthesis block\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ B,{,}: brace block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223m 2\u001b[38;5;235m\u001b[48;5;223m │ r,[,]: bracket block\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ a,<lt>,<gt>: angle block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ \",Q: double quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b["]
[68.98631, "o", "1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[38;5;223m n\u001b[38;5;235m\u001b[48;5;223m │ ',q: single quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╭──╮ │ `,g: grave quote string\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ │ │ w: word\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[38;5;223m m\u001b[38;5;235m\u001b[48;5;223m @ @ ╭│ <a-w>: WORD\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ s: sentence\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││"]
[68.986607, "o", " ╯│ p: paragraph\u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ <space>: whitespaces\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ i: indent\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ u: argument\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ n: number\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ c: custom object desc\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;2"]
[68.986874, "o", "35m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-semicolon>: run command in object context │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ d: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-d>: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m╰──────────────────────────────────────────────╯\u001b[1;28H\u001b(B\u001b[m"]
[69.001365, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;28H"]
[69.002043, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m11|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[3"]
[69.002368, "o", "8;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[69.723238, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;32H\u001b(B\u001b[m"]
[69.723768, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:29 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[4;32H"]
[69.923536, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:26 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[4;32H"]
[69.923895, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:26 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;29H\u001b(B\u001b[m"]
[70.136517, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:27 [\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[7;29H"]
[70.136887, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;30H\u001b(B\u001b[m"]
[70.36677, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[10;30H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[70.562556, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:29 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[1;28H"]
[70.562914, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;32H\u001b(B\u001b[m"]
[70.751672, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:26 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[4;32H"]
[70.752007, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:26 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;29H\u001b(B\u001b[m"]
[70.953359, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:27 [\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[7;29H"]
[70.953756, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;30H\u001b(B\u001b[m"]
[71.128561, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:25 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[10;30H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;28H\u001b(B\u001b[m"]
[71.314787, "o", "\u001b[37C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:29 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[1;28H"]
[71.315187, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;32H\u001b(B\u001b[m"]
[73.928775, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[4;32H"]
[73.929141, "o", "\u001b[1;66HShuffle (shuf):\u001b[4;32H"]
[75.413765, "o", "\u001b[2;66H Randomize selections\u001b[4;32H"]
[78.407801, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[4;32H"]
[78.408754, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m11|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48"]
[78.409014, "o", ";5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[79.527536, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort -l \\d+\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[79.578035, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[79.57845, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m sort -l \\d+\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[79.670236, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[79.720777, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[79.721653, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[79.721752, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[79.764871, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[79.765254, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[79.81489, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[79.832637, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[79.832804, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[79.938785, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sh\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[79.938971, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[80.121515, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shu\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[80.122172, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[80.186645, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shuf\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[80.187224, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[8G"]
[80.635876, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[10;1H\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[23;1H\u001b[38;5;223mShuf 4 selections …file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[80.636071, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[81.723382, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[81.723757, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[81.774062, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[81.77455, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[81.829647, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[81.829759, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[81.880968, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forwa"]
[81.881374, "o", "rd-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[81.931715, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[81.93188, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[81.981872, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[82.045741, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[82.045904, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[82.134207, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sh\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[82.134354, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[82.299697, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shu\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[82.300242, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[82.377053, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[82.377439, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shuf\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[83.203853, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[10;1H\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m11|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[23;1H\u001b[38;5;223mShuf 4 selections …file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[83.204, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[83.968524, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[83.96884, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[84.020167, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[84.131209, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[84.131599, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[84.181842, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[84.182459, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[84.182557, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[84.893013, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[84.893062, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[84.943261, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[85.022735, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms s\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[85.02289, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[85.088907, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms sh\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[85.247952, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[85.248065, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shu\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[85.318783, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[85.31915, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms shuf\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[85.486107, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[10;1H\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[23;1H\u001b[38;5;223mShuf 4 selections …file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[85.486243, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[86.827722, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[86.828122, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+match::log2(10)\u001b[39m\u001b[38X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 100\u001b[39m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[86.848123, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[86.848511, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m\u001b[35X\u001b[6;1H\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\u001b[9;1H\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step 1\u001b[39m\u001b[36X\u001b[12;1H\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[89.154979, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[3;4H"]
[89.155468, "o", "\u001b[1;66HEvaluate math functions (eval or bc)\u001b[3;4H"]
[92.119527, "o", "\u001b[2;66H Uses evalexpr-7:\u001b[3;4H"]
[93.761414, "o", "\u001b[62C Does not spawn a new bc instance for each selection\u001b[4G"]
[99.119417, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[99.120186, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+match::log2(10) \u001b[39m\u001b[48;5;235m\u001b[37X\u001b[4;1H\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b["]
[99.120492, "o", "38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[100.818756, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[100.819365, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;235m\u001b[48;5;223m \u001b[38;5;223m\u001b[48;5;235m 2^9+match::log2(10)\u001b[39m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;4H\u001b(B\u001b[m"]
[101.381566, "o", "\u001b[48;5;235m\u001b[23;15H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2;4H\u001b(B\u001b[m"]
[101.382133, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;4H"]
[101.433437, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Make\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m ╭──────────┤goto├───────────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m not_a_formula\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ g,k: buffer top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[38;5;223m}\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ l: line end\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Compile\") { # Ste\u001b[38;5;235m\u001b[48;5;223m │ h: line begin\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m math::log2(8)\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ i: line non blank start │\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[38;5;223m}\u001b[39m"]
[101.43356, "o", "\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ j: buffer bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m ╭──╮ │ e: buffer end\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m 8+3\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│ │ │ t: window top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[38;5;223m}\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m @ @ \u001b[39m\u001b[48;5;235m\u001b[30X\u001b[38;5;235m\u001b[48;5;223m╭│ b: window bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ c: window center\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[4"]
[101.433808, "o", "8;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ╯│ a: last buffer\u001b[39m\u001b[9X\u001b[9C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ f: file\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ .: last buffer change │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ J: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ K: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ H: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5"]
[101.433899, "o", ";235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ L: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ I: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╰───────────────────────────╯\u001b[2;4H\u001b(B\u001b[m"]
[101.456334, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:23 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;4H"]
[101.457224, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match::log2\u001b[48;5;59m\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[38X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2\u001b[48;5;59m\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+\u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt"]
[101.457555, "o", " 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[102.589205, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;26H"]
[102.589519, "o", "\u001b[48;5;235m\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[102.618026, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;26H"]
[102.618537, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[48;5;108m2^9+match::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[38X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mnot_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mmath::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m8+\u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[103.995748, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;26H\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[104.046797, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m shuf\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[104.124082, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[104.124479, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[104.174862, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[104.175519, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file."]
[104.175804, "o", "txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[104.215725, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[104.265556, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[104.345371, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms b\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[104.521593, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms bc\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[104.522116, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[106.990171, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:5 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[23;6H"]
[106.990387, "o", "\u001b[2;1H\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;235m\u001b[48;5;203m \u001b[48;5;138m \u001b[39m\u001b[48;5;235m\u001b[56X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;235m\u001b[48;5;203m \u001b[48;5;239m \u001b[39m\u001b[48;5;235m\u001b[56X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[56X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[55X\u001b[23;1H\u001b[38;5;223mMathEval 4 selections ….txt 2:5 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;8H\u001b(B\u001b[m"]
[108.998349, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 11:7 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;8H"]
[108.998819, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m2^9+match::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[38X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mnot_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mmath::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[48;5;108m8+\u001b[38;5;235m\u001b[48;5;223m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 11:7 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[11;10H\u001b(B\u001b[m"]
[111.15425, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:23 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[11;10H"]
[111.154641, "o", "\u001b[2;1H\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[48;5;108m2^9+match::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[38X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m8+\u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[111.761777, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;26H\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match::log2\u001b[48;5;59m\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[38X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m math::log2\u001b[48;5;59m\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m 8+\u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[2;26H\u001b(B\u001b[m"]
[111.839737, "o", "\u001b[5;1H\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[111.840338, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;26H"]
[111.964632, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match::log2(\u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;108m0\u001b[48;5;235m)\u001b[39m\u001b[38X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:21 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;24H\u001b(B\u001b[m"]
[111.964867, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:21 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;24H"]
[112.118856, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match::log2\u001b[38;5;235m\u001b[48;5;223m(\u001b[38;5;223m\u001b[48;5;235m10\u001b[48;5;59m\u001b[1m)\u001b(B\u001b[m\u001b[48;5;235m\u001b[38X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:20 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;23H\u001b(B\u001b[m"]
[112.119522, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:20 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;23H"]
[112.271354, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:16 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;23H"]
[112.271716, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match::\u001b[38;5;235m\u001b[48;5;223ml\u001b[38;5;223m\u001b[48;5;108mog2\u001b[48;5;235m(10)\u001b[39m\u001b[38X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:16 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;19H\u001b(B\u001b[m"]
[112.432184, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:14 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;19H"]
[112.432537, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+match\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;108m:\u001b[48;5;235mlog2(10)\u001b[39m\u001b[38X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:14 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;17H\u001b(B\u001b[m"]
[112.597477, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:9 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;17H"]
[112.597863, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+\u001b[38;5;235m\u001b[48;5;223mm\u001b[38;5;223m\u001b[48;5;108match\u001b[48;5;235m::log2(10)\u001b[39m\u001b[38X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:9 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;12H\u001b(B\u001b[m"]
[112.82762, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;12H"]
[112.827973, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;235m:log2(10)\u001b[39m\u001b[43X\u001b[23;7H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:9 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1minsert\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;12H\u001b(B\u001b[m"]
[113.014472, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:10 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;12H"]
[113.014587, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+m\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;235m:log2(10)\u001b[39m\u001b[42X\u001b[23;6H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:10 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1minsert\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;13H\u001b(B\u001b[m"]
[113.063741, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mmatch \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[26X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"M\u001b[48;5;239mmath \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_\u001b[48;5;239mMake \u001b[38;5;235mdemo-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mname \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[26X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"C\u001b[48;5;239mnumerically \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math\u001b[48;5;239mCompile \u001b[38;5;235mdemo-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mExample \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[26X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage("]
[113.06378, "o", "\"B\u001b[48;5;239mAssemble \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+3 \u001b[48;5;239mRandomize \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mnot_a_formula \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[26X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[25X\u001b[2;13H\u001b(B\u001b[m"]
[113.096271, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+ma\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;235m:log2(10)\u001b[39m\u001b[41X\u001b[23;6H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:11 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1minsert\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;14H\u001b(B\u001b[m"]
[113.096453, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:11 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;14H"]
[113.146605, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"M\u001b[48;5;239mmath \u001b[38;5;235mdemo-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_\u001b[48;5;239mMake \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mnumerically \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[26X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"C\u001b[48;5;239mnot_a_formula \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[25X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[2;14H\u001b(B\u001b[m"]
[113.203694, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+mat\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;235m:log2(10)\u001b[39m\u001b[40X\u001b[23;6H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:12 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1minsert\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;15H\u001b(B\u001b[m"]
[113.203846, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:12 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;15H"]
[113.254029, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mmatch \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"M\u001b[48;5;239mmath \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\u001b[2;15H\u001b(B\u001b[m"]
[113.330508, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:13 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;15H"]
[113.330582, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2^9+math\u001b[38;5;235m\u001b[48;5;223m:\u001b[38;5;223m\u001b[48;5;235m:log2(10)\u001b[39m\u001b[39X\u001b[23;6H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:13 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1minsert\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;16H\u001b(B\u001b[m"]
[113.380777, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223m\u001b[48;5;239mmath \u001b[38;5;235mtest-file.txt\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[38;5;223m\u001b[48;5;239m█\u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"M\u001b[48;5;239mmatch \u001b[38;5;235mtest-file.txt\u001b[38;5;223m█\u001b[39m\u001b[48;5;235m\u001b[33X\u001b[2;16H\u001b(B\u001b[m"]
[113.686116, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;16H"]
[113.686232, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m\u001b[35X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:13 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;16H\u001b(B\u001b[m"]
[113.981867, "o", "\u001b[23;1H\u001b[38;5;235m\u001b[48;5;203mregister '^' does not contain a selections desc\u001b[38;5;223m\u001b[48;5;235m …client0@[26015]\u001b[2;16H\u001b(B\u001b[m"]
[113.982006, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;16H"]
[114.844853, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;16H"]
[114.845532, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+math::log2(10) \u001b[39m\u001b[48;5;235m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;"]
[114.845848, "o", "5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[115.727664, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:1 [+]\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[115.728211, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;235m\u001b[48;5;223m \u001b[38;5;223m\u001b[48;5;235m 2^9+math::log2(10)\u001b[39m\u001b[39X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step 100\u001b[39m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step 1\u001b[39m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;235m\u001b[48;5;242m \u001b[38;5;223m\u001b[48;5;235m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;4H\u001b(B\u001b[m"]
[116.258609, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:23 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;4H"]
[116.258985, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+math::log2(10)\u001b[38;5;235m\u001b[48;5;138m \u001b[39m\u001b[48;5;235m\u001b[38X\u001b[5;1H\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula\u001b[38;5;235m\u001b[48;5;239m \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[8;1H\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8)\u001b[38;5;235m\u001b[48;5;239m \u001b[39m\u001b[48;5;235m\u001b[43X\u001b[11;1H\u001b[38;5;242m11|\u001b[48;5;108m 8+3\u001b[38;5;235m\u001b[48;5;239m \u001b[39m\u001b[48;5;235m\u001b[53X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:23 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;26H\u001b(B\u001b[m"]
[116.6139, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[48;5;108m2^9+math::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[39X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mnot_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mmath::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m8+\u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;25H\u001b(B\u001b[m"]
[116.614108, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:22 [+\" 22:05 09-Mar-22\u001b(B\u001b[m\u001b[2;25H"]
[117.215518, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m bc\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[117.215688, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:22 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[23;2H"]
[117.265954, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m bc\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[117.266125, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[117.347497, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[117.347682, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[117.39784, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file."]
[117.398006, "o", "txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[117.412574, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[117.412756, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[117.462792, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[117.573673, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms b\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[117.573891, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[117.739256, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms bc\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[117.739457, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[118.520476, "o", "\u001b[2;1H\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[48;5;108m515.321928094887\u001b[38;5;235m\u001b[48;5;223m3\u001b[39m\u001b[48;5;235m\u001b[40X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;235m\u001b[48;5;203m \u001b[48;5;239m \u001b[39m\u001b[48;5;235m\u001b[56X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;235m\u001b[48;5;242m3\u001b[39m\u001b[48;5;235m\u001b[56X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[55X\u001b[23;1H\u001b[38;5;223mMathEval 4 selections …txt 2:21 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;24H\u001b(B\u001b[m"]
[118.520633, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:21 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[2;24H"]
[120.440771, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 515.321928094887\u001b[38;5;235m\u001b[48;5;223m3\u001b[39m\u001b[48;5;235m\u001b[40X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m 1\u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[55X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:21 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[2;24H\u001b(B\u001b[m"]
[120.441222, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;24H"]
[120.47087, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2;24H"]
[120.471157, "o", "\u001b[5;1H\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;235m\u001b[48;5;203m \u001b[39m\u001b[48;5;235m\u001b[57X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m 3\u001b[39m\u001b[56X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m 11\u001b[39m\u001b[55X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:21 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;24H\u001b(B\u001b[m"]
[123.611136, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 11:7 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[2;24H"]
[123.611527, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108m2^9+math::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[39X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mnot_a_formul\u001b[38;5;235m\u001b[48;5;242ma\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[8;1H\u001b[38;5;242m 8|\u001b[38;5;223m \u001b[38;5;242m\u001b[48;5;108mmath::log2\u001b[1m(\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m8\u001b[38;5;235m\u001b[48;5;242m)\u001b[39m\u001b[48;5;235m\u001b[44X\u001b[11;1H\u001b[38;5;242m11|\u001b[38;5;223m \u001b[48;5;108m8+\u001b[38;5;235m\u001b[48;5;223m3\u001b[39m\u001b[48;5;235m\u001b[54X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 11:7 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[11;10H\u001b(B\u001b[m"]
[124.441586, "o", "\u001b[1;23r\u001b[2;66H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\u001b[1d\u001b[K\u001b[1;24r\u001b[11;10H"]
[124.441952, "o", "\u001b[1;66HUnique (uniq \\d):\u001b[11;10H"]
[126.139601, "o", "\u001b[2;66H Keep only unique selections based on optional regex\u001b[11;10H"]
[127.814593, "o", "\u001b[3;66H Sorting not required\u001b[11;10H"]
[129.937334, "o", "\u001b[4;66H Example: Check uniqueness on first digit (\\d)\u001b[11;10H"]
[134.988352, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[11;10H"]
[134.98877, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+math::log2(10) \u001b[39m\u001b[48;5;235m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;"]
[134.98893, "o", "5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[135.436018, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[3;4H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;108mtage(\"Assemble\") { # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\u001b[3;1H\u001b[38;5;242m 3|\u001b[38;5;223m\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\u001b[6;1H\u001b[38;5;242m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\u001b[9;1H\u001b[38;5;242m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Build\") { # Step 1 \u001b[39m\u001b[48;5;235"]
[135.436332, "o", "m\u001b[35X\u001b[12;1H\u001b[38;5;242m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[135.729443, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;4H"]
[135.729564, "o", "\u001b[48;5;235m\u001b[23;15H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[135.781003, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Make\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m ╭──────────┤goto├───────────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ g,k: buffer top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ l: line end\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Compile\") { # Ste\u001b[38;5;235m\u001b[48;5;223m │ h: line begin\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ i: line non blank start │\r\n\u001b[38;5;"]
[135.781309, "o", "242m\u001b[48;5;235m 9|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ j: buffer bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;235m\u001b[48;5;242ms\u001b[38;5;242m\u001b[48;5;108mtage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m ╭──╮ │ e: buffer end\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[16X\u001b[16C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│ │ │ t: window top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[48;5;108m}\u001b[39m\u001b[48;5;235m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m @ @ \u001b[39m\u001b[48;5;235m\u001b[30X\u001b[38;5;235m\u001b[48;5;223m╭│ b: window bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ c: window center\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n"]
[135.78138, "o", "\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ╯│ a: last buffer\u001b[39m\u001b[9X\u001b[9C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ f: file\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ .: last buffer change │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ J: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ K: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ H: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m "]
[135.78165, "o", "\u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ L: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ I: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╰───────────────────────────╯\u001b[1;4H\u001b(B\u001b[m"]
[135.792241, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:29 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[135.793223, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step 10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;"]
[135.79355, "o", "223mdemo-file.txt 1:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;32H\u001b(B\u001b[m"]
[136.045834, "o", "\u001b[48;5;235m\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;32H\u001b(B\u001b[m"]
[136.046432, "o", "\u001b[33C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;32H"]
[136.097768, "o", "\r\n\u001b[38;5;242m\u001b[48;5;235m 2|\u001b[38;5;223m 2\u001b[38;5;235m\u001b[48;5;223m ╭──────┤select inner surrounding object├───────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 3|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ b,(,): parenthesis block\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ B,{,}: brace block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223m n\u001b[38;5;235m\u001b[48;5;223m │ r,[,]: bracket block\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ a,<lt>,<gt>: angle block\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ \",Q: double quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b["]
[136.097889, "o", "1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[38;5;223m m\u001b[38;5;235m\u001b[48;5;223m │ ',q: single quote string\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 9|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╭──╮ │ `,g: grave quote string\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m10|\u001b[38;5;223mstage\u001b[38;5;235m\u001b[48;5;223m │ │ │ w: word\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m11|\u001b[38;5;223m 8\u001b[38;5;235m\u001b[48;5;223m @ @ ╭│ <a-w>: WORD\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m12|\u001b[38;5;223m}\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ s: sentence\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m││ ││"]
[136.09822, "o", " ╯│ p: paragraph\u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ <space>: whitespaces\u001b[39m\u001b[18X\u001b[18C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[55X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ i: indent\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ u: argument\u001b[39m\u001b[21X\u001b[21C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ n: number\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ c: custom object desc\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;2"]
[136.098539, "o", "35m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-semicolon>: run command in object context │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ d: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m│ <a-d>: path element\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[48X\u001b[38;5;235m\u001b[48;5;223m╰──────────────────────────────────────────────╯\u001b[1;32H\u001b(B\u001b[m"]
[136.123008, "o", "\u001b[33C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;32H"]
[136.123872, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[48;5;108m1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;242m\u001b[48;5;108m10\u001b[38;5;235m\u001b[48;5;242m0\u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m 5|\u001b[38;5;223m not_a_formula\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\r\n\u001b[38;5;242m11|\u001b[38;5;223m 8+3\u001b[39m\u001b[54X\r\n\u001b[38;5;242m12|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m"]
[136.123974, "o", "~\u001b[39m\u001b[63X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;32H\u001b(B\u001b[m"]
[137.794755, "o", "\u001b[33C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:28 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;32H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;108m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;242m\u001b[48;5;108m00\u001b[39m\u001b[48;5;235m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:28 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;31H\u001b(B\u001b[m"]
[138.317825, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;235m0\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;223m\u001b[48;5;235m00\u001b[39m\u001b[35X\u001b[1;31H\u001b(B\u001b[m"]
[138.318378, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;31H"]
[139.212489, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:24 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;31H"]
[139.212883, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;223m\u001b[48;5;235m0\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;235m00\u001b[39m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:24 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;27H\u001b(B\u001b[m"]
[139.378673, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;223m\u001b[48;5;235m00\u001b[39m\u001b[35X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;30H\u001b(B\u001b[m"]
[139.378881, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:27 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[7;30H"]
[139.536331, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:25 [\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[7;30H"]
[139.536711, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;28H\u001b(B\u001b[m"]
[139.690683, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;235m0\u001b[39m\u001b[32X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:28 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[1;31H\u001b(B\u001b[m"]
[139.691403, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:28 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;31H"]
[139.850985, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:24 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;31H\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;223m\u001b[48;5;235m0\u001b[39m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;235m00\u001b[39m\u001b[35X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:24 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[4;27H\u001b(B\u001b[m"]
[140.00967, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[38;5;223mstage(\"Make\") { # Step \u001b[38;5;235m\u001b[48;5;242m1\u001b[38;5;223m\u001b[48;5;235m00\u001b[39m\u001b[35X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 7:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (3)\u001b[38;5;223m - client0@[26015]\u001b[7;30H\u001b(B\u001b[m"]
[140.009861, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 7:27 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[7;30H"]
[140.177905, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 10:25 [\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[7;30H"]
[140.178394, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;242m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[10;1H\u001b[38;5;242m10|\u001b[38;5;223mstage(\"Build\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[39m\u001b[48;5;235m\u001b[36X\u001b[23;12H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 10:25 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (4)\u001b[38;5;223m - client0@[26015]\u001b[10;28H\u001b(B\u001b[m"]
[142.290674, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[10;28H"]
[142.291356, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+math::log2(10) \u001b[39m\u001b[48;5;235m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;"]
[142.291643, "o", "5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[143.060592, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m bc\u001b[39m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[143.061069, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[143.111778, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[143.112672, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m bc\u001b[39m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[143.200886, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[143.201442, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[143.251969, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[143.252852, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[143.253129, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[143.285625, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[143.286208, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[143.336049, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[143.461669, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms u\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[143.462341, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[143.685615, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms un\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[143.686157, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[143.733695, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[143.733807, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uni\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[143.804109, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[143.940501, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[143.941036, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[144.069824, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[144.069949, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[144.10591, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[145.466465, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[39m\u001b[61X\r\n\u001b[38;5;242m 5|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 6|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 8|\u001b[39m\u001b[61X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;1H\u001b[38;5;223m2 unique selections out of 4 …1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m2 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[145.466601, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[147.115357, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[147.115805, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223mstage(\"Compile\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m2 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[147.177474, "o", "\u001b[5;1H\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[147.178186, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[148.57811, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[148.578586, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;235m\u001b[48;5;223m \u001b[38;5;223m\u001b[48;5;235m 2^9+math::log2(10)\u001b[39m\u001b[39X\r\n\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;4H\u001b(B\u001b[m"]
[148.771253, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[2;4H"]
[148.771677, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;223m\u001b[48;5;235mtage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[148.95108, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[1;4H"]
[148.951213, "o", "\u001b[48;5;235m\u001b[23;15H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1menter key\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[1;4H\u001b(B\u001b[m"]
[149.000939, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[39m\u001b[24X\u001b[24C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╭──────────┤goto├───────────╮\r\n\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223mstage(\"Compile\") { # Ste\u001b[38;5;235m\u001b[48;5;223m │ g,k: buffer top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 6|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ l: line end\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 7|\u001b[38;5;223m}\u001b[39m\u001b[23X\u001b[23C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ h: line begin\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;242m\u001b[48;5;235m 8|\u001b[39m\u001b[24X\u001b[24C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ i: line non blank start │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m"]
[149.000978, "o", "│ j: buffer bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╭──╮ │ e: buffer end\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│ │ │ t: window top\u001b[39m\u001b[10X\u001b[10C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m @ @ \u001b[39m\u001b[48;5;235m\u001b[30X\u001b[38;5;235m\u001b[48;5;223m╭│ b: window bottom\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ││ c: window center\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m││ ││ ╯│ a: last buffer\u001b[39m\u001b[9X\u001b[9C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;"]
[149.000988, "o", "239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m│╰─╯│ │ f: file\u001b[39m\u001b[16X\u001b[16C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[36X\u001b[38;5;235m\u001b[48;5;223m╰───╯ │ .: last buffer change │\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ J: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ K: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ H: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ L: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b"]
[149.000996, "o", "[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m│ I: \u001b[39m\u001b[20X\u001b[20C\u001b[38;5;235m \u001b[39m\u001b[1X\u001b[38;5;235m│\r\n\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[26X\u001b[26C\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[29X\u001b[38;5;235m\u001b[48;5;223m╰───────────────────────────╯\u001b[1;4H\u001b(B\u001b[m"]
[149.012459, "o", "\u001b[61C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:29 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;4H"]
[149.012749, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 1\u001b[38;5;235m\u001b[48;5;223m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[4;1H\u001b[38;5;242m 4|\u001b[39m\u001b[61X\r\n\u001b[38;5;242m 5|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 7|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 8|\u001b[39m\u001b[61X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:29 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[1;32H\u001b(B\u001b[m"]
[149.145999, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step \u001b[38;5;235m\u001b[48;5;223m1\u001b[38;5;223m\u001b[48;5;108m0\u001b[39m\u001b[48;5;235m\u001b[32X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 1:28 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[1;31H\u001b(B\u001b[m"]
[149.146289, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 1:28 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;31H"]
[149.871337, "o", "\u001b[34C\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 2:22 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[1;31H"]
[149.871719, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2\u001b[48;5;59m\u001b[1m(\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m10\u001b[38;5;235m\u001b[48;5;223m)\u001b[39m\u001b[48;5;235m\u001b[39X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 2:22 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[2;25H\u001b(B\u001b[m"]
[150.046809, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[150.047342, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[150.204559, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 4:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[3;4H"]
[150.204952, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") { # Step 10\u001b[39m\u001b[32X\u001b[3;1H\u001b[38;5;242m 3|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m 4|\u001b[38;5;235m\u001b[48;5;138m \u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 4:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[4;4H\u001b(B\u001b[m"]
[150.364405, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 5:27 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[4;4H"]
[150.364816, "o", "\r\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[39m\u001b[61X\r\n\u001b[38;5;242m 5|\u001b[38;5;223mstage(\"Compile\") { # Step \u001b[38;5;235m\u001b[48;5;223m5\u001b[39m\u001b[48;5;235m\u001b[34X\u001b[23;18H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 5:27 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[5;30H\u001b(B\u001b[m"]
[151.732648, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 12:1 [+\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[5;30H"]
[151.733293, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[48;5;108mstage(\"Make\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 100 \u001b[39m\u001b[48;5;235m\u001b[34X\r\n\u001b[38;5;242m 5|\u001b[48;5;108m not_a_formula \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 6|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 7|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 8|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\r\n\u001b[38;5;242m 9|\u001b[38;5;223m}\u001b[39m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[38;5;223m\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[38;5;223m\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;13H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 12:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m2 sels (2)\u001b[38;5;223m - client0@[26015]\u001b[12;4H\u001b(B\u001b[m"]
[153.264446, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[30m\u001b[42m\r\n[0] 0:kak* \"demo-file.txt 3:1 [+]\" 22:06 09-Mar-22\u001b(B\u001b[m\u001b[12;4H"]
[153.265084, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223m\u001b[48;5;108mstage(\"Assemble\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;108m # Step 10 \u001b[39m\u001b[48;5;235m\u001b[31X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m\u001b[48;5;108m 2^9+math::log2(10) \u001b[39m\u001b[48;5;235m\u001b[38X\r\n\u001b[38;5;242m 3|\u001b[38;5;235m\u001b[48;5;223m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[7;1H\u001b[38;5;242m 7|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 8|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 9|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m10|\u001b[48;5;108mstage(\"Build\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 1 \u001b[39m\u001b[48;5;235m\u001b[35X\r\n\u001b[38;5;242m11|\u001b[48;5;108m 8+3 \u001b[39m\u001b[48;5;235m\u001b[53X\r\n\u001b[38;5;242m12|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[155.048588, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq \\d\u001b[39m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[155.099063, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[155.099502, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq \\d\u001b[39m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[155.215194, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[155.215601, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[155.265821, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[155.266418, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[155.266535, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[155.32088, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[155.321223, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[155.370842, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[155.819009, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[4G"]
[155.819422, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms u\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[156.025308, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[156.025643, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms un\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[156.051991, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[156.052105, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uni\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[156.113554, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[156.114062, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[8G"]
[157.378331, "o", "\r\u001b[38;5;223m\u001b[48;5;235m4 unique selections out of 4 …1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[157.378464, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[158.419784, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[158.420303, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[158.471661, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[158.599151, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[158.599272, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[158.649847, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[158.650337, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[158.650643, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[158.712214, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[158.712652, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[158.762194, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[158.820645, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms u\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[158.821165, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[159.056921, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms un\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[159.057411, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[159.092139, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[159.092505, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uni\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[159.497251, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[159.49775, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[159.623196, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[8G"]
[159.623591, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[159.683605, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[159.684093, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G"]
[159.812432, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[160.472122, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G"]
[160.472524, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -d+\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[12G\u001b(B\u001b[m"]
[161.475165, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[12G"]
[161.475534, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[161.621131, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G"]
[161.621245, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[161.795608, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -\\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[162.098974, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq -\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[162.236002, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G"]
[162.23636, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[162.396063, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[162.396504, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[162.496031, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[10G"]
[162.496153, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[162.680955, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G"]
[162.681085, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\d+\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[6X\u001b[6C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[12G\u001b(B\u001b[m"]
[162.989232, "o", "\r\u001b[38;5;223m\u001b[48;5;235m4 unique selections out of 4 …1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m4 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[162.989271, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[163.567161, "o", "\u001b[23;1H\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;235m\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq \\d+\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[163.567452, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[163.618724, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[163.619143, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108madd-highlighter\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m\u001b[48;5;239m█\r\naddhl\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalias\u001b[39m\u001b[59X\u001b[58C\u001b[38;5;223m░\r\nalign-selections-left\u001b[39m\u001b[43X\u001b[42C\u001b[38;5;223m░\r\narrange-buffers\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\nautorestore-disable\u001b[39m\u001b[45X\u001b[44C\u001b[38;5;223m░\r\nautorestore-purge-backups\u001b[39m\u001b[39X\u001b[38C\u001b[38;5;223m░\r\nautorestore-restore-buffer\u001b[39m\u001b[38X\u001b[37C\u001b[38;5;223m░\r\nautowrap-disable\u001b[39m\u001b[48X\u001b[47C\u001b[38;5;223m░\r\nautowrap-enable\u001b[39m\u001b[49X\u001b[48C\u001b[38;5;223m░\r\n\u001b[38;5;235m\u001b[48;5;203m:\u001b[48;5;223ms\u001b[38;5;175m\u001b[48;5;235m uniq \\d+\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[2G\u001b(B\u001b[m"]
[163.717368, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[2G"]
[163.717767, "o", "\r\u001b[38;5;235m\u001b[48;5;203m:\u001b[38;5;223m\u001b[48;5;235ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[163.76795, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[163.768504, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;108ms\u001b[39m\u001b[30X\u001b[30C\u001b[38;5;223m\u001b[48;5;239mselect-inner-surrounding-path \u001b[39m\u001b[48;5;108m\u001b[1X\u001b[38;5;223m\u001b[48;5;239m█\r\nsearch-no-wrap\u001b[39m\u001b[17X\u001b[17C\u001b[38;5;223mselect-surrounding-path\u001b[39m\u001b[10X\u001b[9C\u001b[38;5;223m█\r\nselect\u001b[39m\u001b[25X\u001b[25C\u001b[38;5;223mselect-to-offset\u001b[39m\u001b[17X\u001b[16C\u001b[38;5;223m█\r\nselect-backward-path\u001b[39m\u001b[11X\u001b[11C\u001b[38;5;223mset\u001b[39m\u001b[30X\u001b[29C\u001b[38;5;223m░\r\nselect-backward-regex-end\u001b[39m\u001b[6X\u001b[6C\u001b[38;5;223mset-face\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-backward-regex-start\u001b[39m\u001b[4X\u001b[4C\u001b[38;5;223mset-option\u001b[39m\u001b[23X\u001b[22C\u001b[38;5;223m░\r\nselect-by-command\u001b[39m\u001b[14X\u001b[14C\u001b[38;5;223mset-register\u001b[39m\u001b[21X\u001b[20C\u001b[38;5;223m░\r\nselect-forward-path\u001b[39m\u001b[12X\u001b[12C\u001b[38;5;223msmarttab\u001b[39m\u001b[25X\u001b[24C\u001b[38;5;223m░\r\nselect-forward-regex-end\u001b[39m\u001b[7X\u001b[7C\u001b[38;5;223msource\u001b[39m\u001b[27X\u001b[26C\u001b[38;5;223m░\r\nselect-forward-regex-start\u001b[39m\u001b[5X\u001b[5C\u001b[38;5;223mspell\u001b[39m\u001b[28X\u001b[27C\u001b[38;5;223m░\r\n\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[15X\u001b[15C\u001b[38;5;223mdemo-file."]
[163.768601, "o", "txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[3G\u001b(B\u001b[m"]
[163.815598, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3G"]
[163.815934, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[14X\u001b[14C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[4G\u001b(B\u001b[m"]
[163.86546, "o", "\u001b[13;1H\u001b[38;5;239m\u001b[48;5;235m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;4H\u001b(B\u001b[m"]
[163.960747, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms u\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[13X\u001b[13C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[5G\u001b(B\u001b[m"]
[163.961048, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[164.183871, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[5G"]
[164.183987, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms un\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[12X\u001b[12C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[6G\u001b(B\u001b[m"]
[164.194108, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[6G"]
[164.194443, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uni\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[11X\u001b[11C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[7G\u001b(B\u001b[m"]
[164.260986, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[7G"]
[164.261137, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[10X\u001b[10C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[8G\u001b(B\u001b[m"]
[164.432691, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[9X\u001b[9C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[9G\u001b(B\u001b[m"]
[164.433406, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[164.777861, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[9G"]
[164.777986, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[8X\u001b[8C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[10G\u001b(B\u001b[m"]
[165.094889, "o", "\r\u001b[38;5;214m\u001b[48;5;235m:\u001b[38;5;223ms uniq \\d\u001b[38;5;235m\u001b[48;5;223m \u001b[39m\u001b[48;5;235m\u001b[7X\u001b[7C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;214m\u001b[1mprompt\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m - client0@[26015]\u001b[11G\u001b(B\u001b[m"]
[165.095571, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[11G"]
[165.246628, "o", "\u001b[4;1H\u001b[38;5;242m\u001b[48;5;235m 4|\u001b[39m\u001b[61X\r\n\u001b[38;5;242m 5|\u001b[48;5;108mstage(\"Compile\") \u001b[1m{\u001b(B\u001b[m\u001b[38;5;242m\u001b[48;5;108m # Step 5 \u001b[39m\u001b[48;5;235m\u001b[33X\r\n\u001b[38;5;242m 6|\u001b[48;5;108m math::log2(8) \u001b[39m\u001b[48;5;235m\u001b[43X\r\n\u001b[38;5;242m 7|\u001b[38;5;235m\u001b[48;5;242m}\u001b[39m\u001b[48;5;235m\u001b[60X\r\n\u001b[38;5;242m 8|\u001b[39m\u001b[61X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\r\n\u001b[38;5;239m~\u001b[39m\u001b[63X\u001b[23;1H\u001b[38;5;223m2 unique selections out of 4 …1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m2 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[165.246765, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[166.204352, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H"]
[166.204832, "o", "\u001b[H\u001b[38;5;242m\u001b[48;5;235m 1|\u001b[38;5;223mstage(\"Assemble\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 10\u001b[39m\u001b[32X\r\n\u001b[38;5;242m 2|\u001b[38;5;223m 2^9+math::log2(10)\u001b[39m\u001b[39X\u001b[5;1H\u001b[38;5;242m 5|\u001b[38;5;223mstage(\"Compile\") \u001b[48;5;59m\u001b[1m{\u001b(B\u001b[m\u001b[38;5;223m\u001b[48;5;235m # Step 5\u001b[39m\u001b[34X\r\n\u001b[38;5;242m 6|\u001b[38;5;223m math::log2(8)\u001b[39m\u001b[44X\u001b[23;14H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m2 sels (1)\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[166.247415, "o", "\u001b[1;65H\u001b[32m│\u001b[2;65H│\u001b[3;65H│\u001b[4;65H│\u001b[5;65H│\u001b[6;65H│\u001b[7;65H│\u001b[8;65H│\u001b[9;65H│\u001b[10;65H│\u001b[11;65H│\u001b[12;65H│\u001b[13;65H\u001b[39m│\u001b[14;65H│\u001b[15;65H│\u001b[16;65H│\u001b[17;65H│\u001b[18;65H│\u001b[19;65H│\u001b[20;65H│\u001b[21;65H│\u001b[22;65H│\u001b[23;65H│\u001b(B\u001b[m\u001b[3;4H\u001b[5;1H\u001b[38;5;242m\u001b[48;5;235m 5|\u001b[38;5;223mstage(\"Compile\") { # Step 5\u001b[39m\u001b[34X\u001b[7;1H\u001b[38;5;242m 7|\u001b[38;5;223m}\u001b[39m\u001b[60X\u001b[23;19H\u001b[1K\u001b[C\u001b[38;5;223mdemo-file.txt 3:1 \u001b[38;5;235m\u001b[48;5;223m[+]\u001b[38;5;223m\u001b[48;5;235m \u001b[38;5;175m1 sel\u001b[38;5;223m - client0@[26015]\u001b[3;4H\u001b(B\u001b[m"]
[168.451228, "o", "\u001b[5;66Hbash-5.1$ \u001b[3;4H"]
[170.228789, "o", "\u001b[1;24r\u001b(B\u001b[m\u001b[?1l\u001b>\u001b[H\u001b[2J\u001b[?12l\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[?7727l\u001b[?1004l\u001b[?1049l\u001b[23;0;0t"]
[170.229154, "o", "[detached (from session 0)]\r\n"]
[170.281849, "o", "\u001b[?2004hbash-5.1$ "]
[170.626368, "o", "\u001b[?2004l\r\r\nexit\r\n"]

9
kakplugin/Cargo.toml Normal file
View File

@ -0,0 +1,9 @@
[package]
name = "kakplugin"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
shell-words = "1"

104
kakplugin/src/errors.rs Normal file
View File

@ -0,0 +1,104 @@
use crate::Register;
use std::{fmt, fmt::Display, num::ParseIntError};
#[derive(Debug)]
pub enum KakError {
/// A required environment variable was not set
EnvVarNotSet(String),
/// An environment variable was not parsable in unicode
EnvVarUnicode(String),
/// There was an error parsing a response from kak
Parse(String),
/// The string could not be converted into UTF8
Utf8Error(std::string::FromUtf8Error),
/// There was an error with a response kak gave
KakResponse(String),
/// IO Error
Io(std::io::Error),
/// Not yet implemented
NotImplemented(&'static str),
/// Custom error string
Custom(String),
/// Custom static error string
CustomStatic(&'static str),
/// The selections/selections_desc list passed was empty
SetEmptySelections,
/// The register register has no content
EmptyRegister(Register),
}
impl std::error::Error for KakError {}
impl KakError {
pub fn details(&self) -> String {
match self {
Self::EnvVarNotSet(e) => e.clone(),
Self::EnvVarUnicode(e) => e.clone(),
Self::Parse(e) => e.clone(),
Self::Utf8Error(e) => e.to_string(),
Self::KakResponse(e) => e.clone(),
Self::Io(e) => format!("{e:?}"),
Self::NotImplemented(e) => e.to_string(),
Self::Custom(s) => s.clone(),
Self::CustomStatic(s) => s.to_string(),
Self::SetEmptySelections => {
String::from("Attempted to set selections/selections_desc to empty list")
}
Self::EmptyRegister(r) => {
format!("Empty register: {r}")
}
}
}
}
impl Display for KakError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Error: ")?;
match self {
Self::EnvVarNotSet(_) => write!(f, "env var not set"),
Self::EnvVarUnicode(_) => write!(f, "env var not unicode"),
Self::Parse(_) => write!(f, "Could not parse"),
Self::Utf8Error(_) => write!(f, "The string is not valid UTF-8"),
Self::KakResponse(_) => write!(f, "Invalid kak response"),
Self::Io(_) => write!(f, "IO error"),
Self::NotImplemented(_) => write!(f, "Not Implemented"),
Self::Custom(s) => write!(f, "{}", s),
Self::CustomStatic(s) => write!(f, "{}", s),
Self::SetEmptySelections => write!(
f,
"Attempted to set selections/selections_desc to empty list"
),
Self::EmptyRegister(r) => write!(f, "Register {r} has no content"),
}
}
}
impl From<std::convert::Infallible> for KakError {
fn from(_e: std::convert::Infallible) -> Self {
Self::NotImplemented("Infallible error encountered")
}
}
impl From<std::io::Error> for KakError {
fn from(e: std::io::Error) -> Self {
Self::Io(e)
}
}
impl From<shell_words::ParseError> for KakError {
fn from(e: shell_words::ParseError) -> Self {
Self::Parse(format!("Shell could not be parsed: {e:?}"))
}
}
impl From<ParseIntError> for KakError {
fn from(e: ParseIntError) -> Self {
Self::Parse(format!("Could not parse as integer: {e:?}"))
}
}
impl From<std::string::FromUtf8Error> for KakError {
fn from(e: std::string::FromUtf8Error) -> Self {
Self::Utf8Error(e)
}
}

375
kakplugin/src/lib.rs Normal file
View File

@ -0,0 +1,375 @@
mod errors;
pub mod types;
pub use errors::KakError;
pub use shell_words::ParseError;
use std::{
borrow::Cow,
env,
fmt::Display,
fs::{self, File, OpenOptions},
io::{BufWriter, Write},
str::FromStr,
};
use types::Register;
pub use types::{
AnchorPosition, Selection, SelectionDesc, SelectionWithDesc, SelectionWithSubselections,
};
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn get_selections(keys: Option<&'_ str>) -> Result<Vec<Selection>, KakError> {
response("%val{selections}", keys)
}
pub fn get_register_selections<R>(r: R) -> Result<Vec<Selection>, KakError>
where
R: AsRef<Register>,
{
cmd(&format!(
r#"
evaluate-commands -draft %{{
execute-keys '\"{}z';
echo -quoting shell -to-file {} -- %val{{selections}};
}}"#,
r.as_ref().kak_escaped(),
get_var("kak_response_fifo")?
))?;
let selections = shell_words::split(&fs::read_to_string(&get_var("kak_response_fifo")?)?)?;
Ok(selections)
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn get_selections_desc<S>(keys: Option<S>) -> Result<Vec<SelectionDesc>, KakError>
where
S: AsRef<str>,
{
let mut ret = response("%val{selections_desc}", keys.as_ref())?
.iter()
.map(|sd| SelectionDesc::from_str(sd).map(|x| x.sort()))
.collect::<Result<Vec<_>, KakError>>()?;
ret.sort();
Ok(ret)
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn get_selections_desc_unordered(keys: Option<&str>) -> Result<Vec<SelectionDesc>, KakError> {
response("%val{selections_desc}", keys.as_ref())?
.iter()
.map(|sd| SelectionDesc::from_str(sd))
.collect::<Result<Vec<_>, KakError>>()
}
// pub fn get_selections_with_subselections(
// register: &str,
// ) -> Result<Vec<SelectionWithSubselections>, KakError> {
// // TODO: Escape register
// let subselections = get_selections_with_desc_unordered()?;
// exec(format!("\"{}z", register.replace('\'', "''")))?;
// let selections = get_selections_with_desc_unordered()?;
// for sel in selections {
// for i in subselections {}
// }
// }
/// Return a vec of SelectionWithDesc. The returned vec is in order according to SelectionDesc
///
/// For example, if your primary selection is selection 2 of 3, the returned vec's order will be selection 2, 3, then 1
///
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to,
/// or if `selections.len() != selections_desc.len`
pub fn get_selections_with_desc_unordered(
keys: Option<&'_ str>,
) -> Result<Vec<SelectionWithDesc>, KakError> {
let mut selections = get_selections(keys)?;
let selections_desc = get_selections_desc_unordered(keys)?;
if selections.len() != selections_desc.len() {
return Err(KakError::KakResponse(format!(
"When requesting selections (={}) and selections_desc (={}), their count did not match",
selections.len(),
selections_desc.len()
)));
}
let min_selection = selections_desc.iter().min().ok_or_else(|| {
KakError::KakResponse("Selections are empty, which should not be possible".to_string())
})?;
// Kakoune prints selections in file order, but prints selections_desc rotated based on current selection
// Ex:
// [a] [b] (c) [d] where () is primary selection
// selections: a b c d
// selections_desc: c d a b
// Need to rotate selections by primary selection's position in the list
match selections_desc.iter().position(|p| p == min_selection) {
Some(i) => {
selections.rotate_right(i);
}
None => {
return Err(KakError::KakResponse(format!(
"Primary selection {} not found in selection_desc list ({:#?})",
min_selection, selections_desc
)));
}
}
selections
.into_iter()
.zip(selections_desc.into_iter())
.map(|(content, desc)| Ok(SelectionWithDesc { content, desc }))
.collect::<Result<Vec<_>, _>>()
}
/// Return a vec of SelectionWithDesc, sorted in file (SelectionDesc) order
///
/// For example, the returned vec's order will be selection 1, 2, then 3 regardless of the primary selection
pub fn get_selections_with_desc(keys: Option<&'_ str>) -> Result<Vec<SelectionWithDesc>, KakError> {
let mut ret = get_selections_with_desc_unordered(keys)?;
ret.sort_by_key(|s| s.desc.sort());
Ok(ret)
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn set_selections_failable<'a, I, S: 'a, E>(selections: I) -> Result<usize, KakError>
where
I: IntoIterator<Item = Result<S, E>>,
S: AsRef<str> + Clone + Display,
E: Into<KakError>,
{
let mut selections_iter = selections.into_iter().peekable();
if selections_iter.peek().is_none() {
return Err(KakError::SetEmptySelections);
}
let mut f = open_command_fifo()?;
let mut num_written: usize = 0;
write!(f, "set-register '\"'")?;
for i in selections_iter {
num_written = num_written.saturating_add(1);
write!(f, " '{}'", escape(i.map_err(Into::into)?.as_ref()))?;
}
write!(f, "; execute-keys R;")?;
f.flush()?;
Ok(num_written)
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn set_selections<'a, I, S: 'a>(selections: I) -> Result<usize, KakError>
where
I: IntoIterator<Item = S>,
S: AsRef<str> + Clone + Display,
{
set_selections_failable(
selections
.into_iter()
.map(|s| -> Result<_, std::convert::Infallible> { Ok(s) }),
)
// let mut selections_iter = selections.into_iter().peekable();
// if selections_iter.peek().is_none() {
// return Err(KakError::SetEmptySelections);
// }
// let mut f = open_command_fifo()?;
// write!(f, "set-register '\"'")?;
// for i in selections_iter {
// write!(f, " '{}'", escape(i.as_ref()))?;
// }
// write!(f, "; execute-keys R;")?;
// f.flush()?;
// Ok(())
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn set_selections_desc<'a, I, SD: 'a + Display>(selections: I) -> Result<(), KakError>
where
I: IntoIterator<Item = SD>,
SD: AsRef<SelectionDesc>,
{
let mut selections_iter = selections.into_iter().peekable();
if selections_iter.peek().is_none() {
return Err(KakError::SetEmptySelections);
}
let mut f = open_command_fifo()?;
write!(f, "select")?;
for i in selections_iter {
write!(f, " {}", i)?;
}
write!(f, ";")?;
f.flush()?;
Ok(())
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened, read from, or written to
pub fn display_message<S: AsRef<str> + Clone + Display>(
message: S,
debug_message: Option<S>,
) -> Result<(), KakError> {
let msg_str = escape(message.as_ref());
{
let mut f = open_command_fifo()?;
write!(f, "echo '{}';", msg_str)?;
write!(f, "echo -debug '{}';", msg_str)?;
if let Some(debug_msg_str) = &debug_message.as_ref() {
write!(f, "echo -debug '{}';", escape(debug_msg_str.as_ref()))?;
}
f.flush()?;
}
Ok(())
}
/// Escapes a string to be sent to kak by replacing single tick with two single tics
///
/// # Examples
///
/// ```
/// use kakplugin::escape;
/// use std::borrow::Cow;
///
/// assert_eq!(escape("abcd"), "abcd");
/// assert_eq!(escape("'ab\\cd'"), "''ab\\cd''");
///
/// // Will not reallocate for
/// assert!(matches!(escape("abcd"), Cow::Borrowed(_)));
/// assert!(matches!(escape("ab\\nc\nd"), Cow::Borrowed(_)));
/// assert!(matches!(escape("ab'cd"), Cow::Owned(_)));
/// ```
pub fn escape(s: &str) -> Cow<str> {
if s.contains('\'') {
Cow::Owned(s.replace('\'', "''"))
} else {
Cow::Borrowed(s)
}
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened or written to
pub fn cmd<S>(cmd: S) -> Result<(), KakError>
where
S: AsRef<str>,
{
let mut f = open_command_fifo()?;
write!(f, "{};", cmd.as_ref())?;
f.flush().map_err(Into::into)
}
pub fn restore_register<R>(r: R) -> Result<(), KakError>
where
R: AsRef<Register>,
{
cmd(&format!("execute-keys '\"{}z'", r.as_ref().kak_escaped()))
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened or written to
pub fn response<S1, S2>(msg: S1, keys: Option<S2>) -> Result<Vec<String>, KakError>
where
S1: AsRef<str>,
S2: AsRef<str>,
{
let response_fifo = get_var("kak_response_fifo")?;
cmd(match keys.as_ref() {
None => format!(
"echo -quoting shell -to-file '{response_fifo}' -- {}",
msg.as_ref()
),
Some(keys) => format!(
r#"evaluate-commands -draft %{{
execute-keys '{}';
echo -quoting shell -to-file '{response_fifo}' -- {};
}}"#,
escape(keys.as_ref()),
msg.as_ref()
),
})?;
Ok(shell_words::split(&fs::read_to_string(&get_var(
"kak_response_fifo",
)?)?)?)
}
/// # Errors
///
/// Will return `Err` if command fifo could not be opened
pub fn open_command_fifo() -> Result<BufWriter<File>, KakError> {
OpenOptions::new()
.write(true)
.append(true)
.open(&get_var("kak_command_fifo")?)
.map(BufWriter::new)
.map_err(Into::into)
}
/// # Errors
///
/// Will return `Err` if requested environment variable is not unicode or not present
pub fn get_var<S>(var_name: S) -> Result<String, KakError>
where
S: AsRef<str>,
{
env::var(var_name.as_ref()).map_err(|e| match e {
env::VarError::NotPresent => {
KakError::EnvVarNotSet(format!("Env var {} is not defined", var_name.as_ref()))
}
env::VarError::NotUnicode(_) => {
KakError::EnvVarUnicode(format!("Env var {} is not unicode", var_name.as_ref()))
}
})
}
/// Prints a list of shell script candidates for kakoune to ingest
pub fn generate_shell_script_candidates<S>(variants: &[S]) -> Result<(), KakError>
where
S: AsRef<str>,
{
let token_to_complete = get_var("kak_token_to_complete")?.parse::<u8>()?;
match token_to_complete {
0 => {
for v in variants {
println!("{}", v.as_ref());
}
}
1_u8..=u8::MAX => {
// We can't see which command was selected, so none of these will do anything
}
}
Ok(())
}
pub fn reg(register: Register, keys: Option<&'_ str>) -> Result<Vec<String>, KakError> {
let ret = response(format!("%reg{{{}}}", register.kak_expanded()), keys)?;
// Kak returns a single empty line
if &ret[..] == [""] {
return Err(KakError::EmptyRegister(register));
}
Ok(ret)
}

1051
kakplugin/src/types.rs Normal file

File diff suppressed because it is too large Load Diff

2
rustfmt.toml Normal file
View File

@ -0,0 +1,2 @@
unstable_features = true
imports_granularity = "Crate"

218
src/box_.rs Normal file
View File

@ -0,0 +1,218 @@
use kakplugin::{
get_selections_desc, set_selections_desc, AnchorPosition, KakError, SelectionDesc,
};
use std::cmp::{max, min};
#[derive(clap::Args, Debug)]
pub struct Options {
/// Bounding box mode, which selects the largest box to contain everything
#[clap(short, long, help = "Select the bonding box of all selections")]
bounding_box: bool,
/// Excludes newlines from resulting selection
#[clap(short, long, help = "Do not include newlines")]
no_newline: bool,
}
pub fn box_(options: &Options) -> Result<String, KakError> {
if options.bounding_box {
// The user requested only the bounding box, so select it first
set_selections_desc(vec![get_bounding_box(get_selections_desc::<&str>(None)?)
.ok_or_else(|| {
KakError::Custom(String::from("Selection is empty"))
})?])?;
}
let ret_selections_desc = boxed_selections(options)?;
set_selections_desc(ret_selections_desc.iter())?;
Ok(format!("Boxed {} selection(s)", ret_selections_desc.len()))
}
/// Get the bounding box of some iterator of selections
fn get_bounding_box<SDI>(selections_desc: SDI) -> Option<SelectionDesc>
where
// SD: AsRef<SelectionDesc>,
SDI: IntoIterator<Item = SelectionDesc>,
{
selections_desc
.into_iter()
.map(|sd| sd.as_ref().sort())
.reduce(|acc, sd| SelectionDesc {
left: AnchorPosition {
row: min(
min(acc.left.row, acc.right.row),
min(sd.left.row, sd.right.row),
),
col: min(
min(acc.left.col, acc.right.col),
min(sd.left.col, sd.right.col),
),
},
right: AnchorPosition {
row: max(
max(acc.right.row, acc.left.row),
max(sd.right.row, sd.left.row),
),
col: max(
max(acc.right.col, acc.left.col),
max(sd.right.col, sd.left.col),
),
},
})
}
/// Implementation that converts each selection to a box with the top left corner at min(anchor.col, cursor.col) and bottom right at max(anchor.col, cursor.col)
///
/// Do this by getting each selection, then getting each whole-row (col 0 to col max) and passing the range of whole-rows into helper `to_boxed_selections`
fn boxed_selections(options: &Options) -> Result<Vec<SelectionDesc>, KakError> {
// The selections we want to box, one per box
let selections_desc = get_selections_desc::<&str>(None)?;
let whole_line_selection_command = if options.no_newline {
// Select everything and only keep non-newlines
"xs^[^\\n]+<ret>"
} else {
// Select everything and split
"x<a-s>"
};
// Whole-row selections split on newline
let selections_desc_rows = get_selections_desc(Some(whole_line_selection_command))?;
Ok(selections_desc
.iter()
.map(|sd| {
// The index in the array that contains the first row in the split lines
let first_row_idx = selections_desc_rows
.binary_search_by(|sd_search| sd_search.left.row.cmp(&sd.left.row))
.map_err(|_| {
KakError::Custom(format!(
"Selection row {} not found in split rows",
sd.left.row
))
})?;
// The slice of full row selections
let sd_rows = selections_desc_rows
.as_slice()
// Start at the first (should be only) position in the list with this row
.take(first_row_idx..)
.ok_or_else(|| {
KakError::Custom(format!(
"Rows selections_desc (len={}) has no idx={}",
selections_desc_rows.len(),
first_row_idx
))
})?
// Take row_span rows. For an 8 row selection, get 8 rows, including the one taken before
.take(..(sd.row_span()))
.ok_or_else(|| {
eprintln!(
"rows: {}, row_span: {}, remaining: selections_desc_rows: {}",
selections_desc_rows.len(),
sd.row_span(),
selections_desc_rows.len()
);
KakError::Custom(String::from(
"Selections split on line count mismatch (too few rows)",
))
})?;
Ok(to_boxed_selections(sd, sd_rows))
})
.collect::<Result<Vec<Vec<SelectionDesc>>, KakError>>()?
.into_iter()
.flatten()
.collect::<Vec<SelectionDesc>>())
}
/// Returns a vec of `selections_desc` of the intersection of the bounding box and the component rows
///
/// This function takes a selection desc, and its whole-row split selections (`x<a-s>`).
/// For each whole-row (col 1 to max col) selection, it finds the intersection between the min col and max col in `selection_desc`
///
/// * `selection_desc` - The base (possibly multiline) `selection_desc`
/// * `selections_desc_rows` - Vec of above `selection_desc` split by line (`x<a-s>`)
fn to_boxed_selections<SD1, SD2>(
selection_desc: SD1,
selections_desc_rows: &[SD2],
) -> Vec<SelectionDesc>
where
SD1: AsRef<SelectionDesc>,
SD2: AsRef<SelectionDesc>,
{
let (leftmost_col, rightmost_col) = (
min(
selection_desc.as_ref().left.col,
selection_desc.as_ref().right.col,
),
max(
selection_desc.as_ref().left.col,
selection_desc.as_ref().right.col,
),
);
selections_desc_rows
.iter()
.filter_map(|split_sd| {
// Find the intersection of <row>.<min_col>,<row>.<max_col>
// If empty, return none. Flatten will not add it to the resulting vec
split_sd.as_ref().intersect(SelectionDesc {
left: AnchorPosition {
row: split_sd.as_ref().left.row,
col: leftmost_col,
},
right: AnchorPosition {
row: split_sd.as_ref().right.row,
col: rightmost_col,
},
})
})
.collect()
}
#[cfg(test)]
mod tests {
use super::*;
// Selection desc creator
macro_rules! sd {
($b:expr, $d:expr) => {{
sd!(1, $b, 1, $d)
}};
($a:expr, $b:expr,$c:expr,$d:expr) => {{
SelectionDesc {
left: AnchorPosition { row: $a, col: $b },
right: AnchorPosition { row: $c, col: $d },
}
}};
}
// Reversed
macro_rules! sdr {
($b:expr, $d:expr) => {{
sd!(1, $d, 1, $b)
}};
($a:expr, $b:expr,$c:expr,$d:expr) => {{
SelectionDesc {
left: AnchorPosition { row: $c, col: $d },
right: AnchorPosition { row: $a, col: $b },
}
}};
}
#[test]
fn test_get_bounding_box() {
assert!(get_bounding_box(Vec::new()).is_none());
assert_eq!(get_bounding_box(vec![sd!(0, 1)]).unwrap(), sd!(0, 1));
assert_eq!(
get_bounding_box(vec![sd!(0, 0, 8, 2), sd!(1, 15, 9, 3)]).unwrap(),
sd!(0, 0, 9, 15)
);
assert_eq!(get_bounding_box(vec![sdr!(0, 1)]).unwrap(), sd!(0, 1));
assert_eq!(
get_bounding_box(vec![sdr!(0, 0, 8, 2), sdr!(1, 15, 9, 3)]).unwrap(),
sd!(0, 0, 9, 15)
);
}
}

View File

@ -1,3 +1,5 @@
use std::num::ParseIntError;
#[derive(Debug)]
pub struct KakMessage(pub String, pub Option<String>);
@ -5,7 +7,7 @@ impl From<std::io::Error> for KakMessage {
fn from(err: std::io::Error) -> Self {
Self(
"Error writing to fifo".to_string(),
Some(format!("{:?}", err)),
Some(format!("{}", err)),
)
}
}
@ -16,8 +18,20 @@ impl From<String> for KakMessage {
}
}
impl From<shellwords::MismatchedQuotes> for KakMessage {
fn from(err: shellwords::MismatchedQuotes) -> Self {
impl From<&str> for KakMessage {
fn from(err: &str) -> Self {
Self(err.to_string(), None)
}
}
impl From<kakplugin::ParseError> for KakMessage {
fn from(err: kakplugin::ParseError) -> Self {
Self("Corrupt kak response".to_string(), Some(err.to_string()))
}
}
impl From<ParseIntError> for KakMessage {
fn from(err: ParseIntError) -> Self {
Self(format!("Could not parse int: {}", err), None)
}
}

51
src/incr.rs Normal file
View File

@ -0,0 +1,51 @@
use evalexpr::{eval, Value};
use kakplugin::{get_selections, set_selections, KakError};
use std::borrow::Cow;
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(index = 1, help = "Amount to increment/decrement", default_value = "1")]
amount: isize,
}
pub fn incr(options: &Options, should_increment: bool) -> Result<String, KakError> {
let mut err_count: usize = 0;
let selections = get_selections(Some("_"))?;
set_selections(selections.iter().map(|s| {
match eval(&format!(
"{s}{}{}",
if should_increment { "+" } else { "-" },
options.amount
)) {
Ok(Value::Float(f)) => Cow::Owned(f.to_string()),
Ok(Value::Int(f)) => Cow::Owned(f.to_string()),
Ok(_) => Cow::Borrowed(""),
Err(e) => {
eprintln!("Error: {:?}", e);
err_count = err_count.saturating_add(1);
// Set the selection to empty
Cow::Borrowed("")
}
}
}))?;
Ok(if err_count == 0 {
format!(
"{} {} selections by {}",
if should_increment { "Incr" } else { "Decr" },
selections.len(),
options.amount
)
} else {
format!(
"{} {} selections by {} ({} error{})",
if should_increment { "Incr" } else { "Decr" },
selections.len().saturating_sub(err_count),
options.amount,
err_count,
if err_count == 1 { "" } else { "s" }
)
})
}

115
src/invert.rs Normal file
View File

@ -0,0 +1,115 @@
use kakplugin::{
get_selections_desc, set_selections_desc, types::MaybeSplit, KakError, SelectionDesc,
};
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(short, long, help = "Do not include newlines")]
no_newline: bool,
#[clap(short, long, help = "Invert by line instead of by entire document")]
line: bool,
}
pub fn invert(options: &Options) -> Result<String, KakError> {
// The selections to invert
let mut split_selections_desc: Vec<(usize, Vec<SelectionDesc>)> = {
// Split by multiline so subtraction is defined (see below)
// Group by row, so for a given document row, subtraction can iterate over the Vec
get_selections_desc(Some("<a-s>"))?
.chunk_by(|a, b| a.left.row == b.left.row)
.map(|sds| (sds[0].left.row, sds.to_vec()))
.collect()
};
let count_selections = split_selections_desc.len();
let whole_document_selection_command = match (options.line, options.no_newline) {
// Select everything and only keep non-newlines
(false, true) => "%s^[^\\n]+<ret>",
// Select everything and split
(false, false) => "%<a-s>",
// Select entire line, then remove newline
(true, true) => "x<a-s>s^[^\\n]+<ret>",
// Select entire line, including newline
(true, false) => "x<a-s>",
};
let document_descs: Vec<SelectionDesc> = {
// Every line in the document as a selectiondesc
// Split by line because subtracting cross-multiline is not always defined for multiline selection descs (ex: 1.1,3.3 - 2.1,3.3 = 1.1,1.<?>)
get_selections_desc(Some(whole_document_selection_command))?
.into_iter()
// dd - The full row selectiondesc, spanning from col 1 to the rightmost col, for every row in the file
.flat_map(|dd: SelectionDesc| {
// For every line, if there are selections to subtract, subtract them all
match split_selections_desc
.binary_search_by(|sd_search| sd_search.0.cmp(&dd.left.row))
{
Ok(idx) => {
// There is at least one SelectionDesc that needs to be subtracted from dd
subtract_all_selections_desc(dd, split_selections_desc.remove(idx).1)
}
Err(_) => {
// There are no SelectionDesc entries that need to be subtracted from this row. return it
vec![dd]
}
}
})
.collect()
};
set_selections_desc(document_descs.iter())?;
kakplugin::cmd("exec '<a-_>'")?;
Ok(format!("Inverted {} selections", count_selections))
}
/// Subtract an iterator of `SelectionDesc`s from a given `SelectionDesc`
///
/// This returns a `Vec` because splitting in the middle can create two `SelectionDesc`s
///
/// * `selection_desc` - The primary `SelectionDesc` to be subtracted from
/// * `selections_desc_to_subtract` - `Vec` of `SelectionDesc`s from `sd`. Must be an owned `Vec` because it needs to be sorted
fn subtract_all_selections_desc<SD1, SD2>(
selection_desc: SD1,
mut selections_desc_to_subtract: Vec<SD2>,
) -> Vec<SelectionDesc>
where
SD1: AsRef<SelectionDesc>,
SD2: AsRef<SelectionDesc> + Ord,
{
// If it is sorted, the selections to subtract will be in left to right order
// This way, we can store just the rightmost `selection_desc`
selections_desc_to_subtract.sort();
let mut rightmost_selection_desc: SelectionDesc = selection_desc.as_ref().clone();
let mut ret = vec![];
for sd in selections_desc_to_subtract {
match rightmost_selection_desc.as_ref().subtract(sd.as_ref()) {
MaybeSplit::Nothing => {
// Subtraction yeilded no selections. This selection desc needs to be excluded
return ret;
}
MaybeSplit::Just(sd) => {
// There was a successful split, but it was a prefix/suffix truncation
// We don't know if more selections will cut this selection, so continue
// TODO: Replace Just with JustLeft and JustRight?
rightmost_selection_desc = sd.as_ref().clone();
}
MaybeSplit::JustTwo(selectiondesc_a, selectiondesc_b) => {
// There was a split in the middle of the selection
// Put the left half into the return vector and keep checking if the right half needs more work
ret.push(selectiondesc_a);
rightmost_selection_desc = selectiondesc_b;
}
}
}
// If we got here, the iterator ran out of things to subtract from us
// Push whatever is in the rightmost selection desc and continue
ret.push(rightmost_selection_desc);
ret
}

14
src/join.rs Normal file
View File

@ -0,0 +1,14 @@
use kakplugin::{get_selections_desc_unordered, set_selections_desc, KakError};
#[derive(clap::Args, Debug)]
pub struct Options;
pub fn join(_options: &Options) -> Result<String, KakError> {
set_selections_desc(
get_selections_desc_unordered(None)?
.into_iter()
.reduce(|acc, sd| acc.bounding_selection(sd)),
)?;
Ok(format!("Joined all selections"))
}

31
src/keep_every.rs Normal file
View File

@ -0,0 +1,31 @@
use itertools::Itertools;
use kakplugin::{get_selections_desc_unordered, set_selections_desc, KakError};
#[derive(Debug, clap::Args)]
pub struct Options {
#[clap(index = 1, value_parser = clap::value_parser!(u16).range(2..))]
keep_every: u16,
}
pub fn keep_every(options: &Options) -> Result<String, KakError> {
let old_selections_desc = get_selections_desc_unordered(None)?;
let mut new_count = 0;
set_selections_desc(
old_selections_desc
.iter()
.chunks(options.keep_every.into())
.into_iter()
.flat_map(|mut it| {
// Only keep the first selection from each chunk
new_count += 1;
it.next()
}),
)?;
Ok(format!(
"{} kept from {}",
new_count,
old_selections_desc.len()
))
}

View File

@ -1,169 +1,134 @@
#![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::cargo)]
// Enable clippy 'hard mode'
#![warn(clippy::all, clippy::pedantic, clippy::nursery)]
// Intended behavior (10_f64 as i32)
#![allow(clippy::cast_possible_truncation)]
// Cannot be fixed
#![allow(clippy::multiple_crate_versions)]
#![allow(clippy::struct_excessive_bools)]
#![feature(slice_take)]
#![feature(array_chunks)]
mod box_;
mod errors;
use alphanumeric_sort::compare_str;
use clap::Parser;
use errors::KakMessage;
use regex::Regex;
mod incr;
mod invert;
mod join;
mod keep_every;
mod math_eval;
mod pad;
mod rev;
mod set;
mod shuf;
mod sort;
mod trim;
mod uniq;
mod utils;
mod xargs;
mod xlookup;
use clap::{Parser, Subcommand};
use kakplugin::{display_message, get_var, KakError};
use std::env;
use std::fs;
use std::fs::File;
use std::fs::OpenOptions;
use std::io::Write;
use strum::VariantNames;
#[derive(Parser, Debug)]
#[clap(about, version, author)]
struct Options {
struct Cli {
#[clap(subcommand)]
command: Commands,
// TODO: Allow clap to parse these. Currently clap treats them as positional
// #[clap(env = "kak_command_fifo", takes_value = false)]
// kak_command_fifo_name: PathBuf,
// #[clap(env = "kak_response_fifo", takes_value = false)]
// kak_response_fifo_name: PathBuf,
#[clap(index = 1)]
regex: Option<String>,
#[clap(short = 'S', long)]
// TODO: Can we invert a boolean? This name is terrible
no_skip_whitespace: bool,
#[clap(short, long)]
lexicographic_sort: bool,
#[clap(short, long)]
reverse: bool,
}
#[derive(Subcommand, Debug, strum::EnumVariantNames)]
#[strum(serialize_all = "kebab_case")]
enum Commands {
#[clap(about = "Sorts selections based on content or content regex match")]
Sort(sort::Options),
#[clap(about = "Shuffle selections")]
Shuf(shuf::Options),
#[clap(about = "Find unique selections based on optional regex match")]
Uniq(uniq::Options),
#[clap(about = "Invert all selections", visible_aliases = &["inv", "inverse"])]
Invert(invert::Options),
#[clap(about = "Evaluate selections as a math expression", visible_aliases = &["bc", "eval"])]
MathEval(math_eval::Options),
#[clap(about = "Pad all selections by some specifier")]
Pad(pad::Options),
#[clap(about = "Trim every selection")]
Trim(trim::Options),
#[clap(about = "Perform set operations on selections")]
Set(set::Options),
#[clap(about = "Pass each selection null terminated to a command", visible_aliases = &["stdin"])]
Xargs(xargs::Options),
#[clap(about = "Make boxes out of selections", visible_aliases = &["square"])]
Box_(box_::Options),
#[clap(about = "Map selections based on a register", visible_aliases = &["vlookup"])]
Xlookup(xlookup::Options),
#[clap(about = "Increment selections")]
Decr(incr::Options),
#[clap(about = "Decrement selections")]
Incr(incr::Options),
#[clap(about = "Reverse selections")]
Rev(rev::Options),
#[clap(about = "Join selections")]
Join(join::Options),
#[clap(about = "Keep a subset of selections", visible_aliases = &["keep"])]
KeepEvery(keep_every::Options),
}
fn main() {
let msg = match run() {
Ok(msg) => msg,
Err(msg) => {
eprintln!("{} (Debug info: {:?})", msg.0, msg.1);
msg
// First, check if we are just getting candidates to run the program. kak_command_fifo is not needed for this
let args = env::args().collect::<Vec<_>>();
if args.len() >= 2 && args[1] == "shell-script-candidates" {
if let Err(e) = kakplugin::generate_shell_script_candidates(Commands::VARIANTS) {
eprintln!("{e:?}");
}
return;
}
// This will be required for all subcommands from here on
if get_var("kak_command_fifo")
.and(get_var("kak_response_fifo"))
.is_err()
{
panic!("Environment variable kak_command_fifo and kak_response_fifo must be set");
}
let (msg, msg_details) = match run() {
Ok(msg) => (msg, None),
Err(e) => (e.to_string(), Some(e.details())),
};
send_message(&msg);
}
fn send_message(msg: &KakMessage) {
let msg_str = msg.0.replace('\'', "''");
{
let mut f = open_command_fifo().unwrap();
write!(f, "echo '{}';", msg_str).unwrap();
write!(f, "echo -debug '{}';", msg_str).unwrap();
if let Some(debug_msg_str) = &msg.1 {
write!(f, "echo -debug '{}';", debug_msg_str.replace('\'', "''")).unwrap();
}
if let Err(display_error) = display_message(&msg, msg_details.as_ref()) {
// If there was an error sending the display message to kakoune, print it out
eprintln!(
"Error sending message '{msg:?}' (details: '{msg_details:?}') to kak: {display_error:?}"
);
}
}
fn run() -> Result<KakMessage, KakMessage> {
let options = Options::try_parse().map_err(|e| {
KakMessage(
"Error parsing arguments".to_string(),
Some(format!("Could not parse: {:?}", e)),
)
})?;
fn run() -> Result<String, KakError> {
let options = Cli::try_parse().map_err(|e| KakError::Custom(format!("{e}")))?;
let re = options
.regex
.as_ref()
.map(|r| Regex::new(r))
.transpose()
.map_err(|_| {
format!(
"Invalid regular expression: {}",
options.regex.unwrap_or("".to_string())
)
})?;
let selections = read_selections()?;
let mut zipped = selections
.iter()
.zip(
selections
.iter()
.map(|a| {
if options.no_skip_whitespace {
a
} else {
a.trim()
}
})
.map(|a| {
let captures = re.as_ref()?.captures(a)?;
captures
.get(1)
.or_else(|| captures.get(0))
.map(|m| m.as_str())
}),
)
.collect::<Vec<(&String, Option<&str>)>>();
zipped.sort_by(|(a, a_key), (b, b_key)| {
let a = a_key.unwrap_or(a);
let b = b_key.unwrap_or(b);
if options.lexicographic_sort {
a.cmp(b)
} else {
compare_str(a, b)
}
});
let mut f = open_command_fifo()?;
write!(f, "reg '\"'")?;
let iter: Box<dyn Iterator<Item = _>> = if options.reverse {
Box::new(zipped.iter().rev())
} else {
Box::new(zipped.iter())
};
for i in iter {
let new_selection = i.0.replace('\'', "''");
write!(f, " '{}'", new_selection)?;
match &options.command {
Commands::Sort(o) => sort::sort(o),
Commands::Shuf(o) => shuf::shuf(o),
Commands::Uniq(o) => uniq::uniq(o),
Commands::Invert(o) => invert::invert(o),
Commands::MathEval(o) => math_eval::math_eval(o),
Commands::Pad(o) => pad::pad(o),
Commands::Trim(o) => trim::trim(o),
Commands::Set(o) => set::set(o),
Commands::Xargs(o) => xargs::xargs(o),
Commands::Box_(o) => box_::box_(o),
Commands::Xlookup(o) => xlookup::xlookup(o),
Commands::Incr(o) => incr::incr(o, true),
Commands::Decr(o) => incr::incr(o, false),
Commands::Rev(o) => rev::rev(o),
Commands::Join(o) => join::join(o),
Commands::KeepEvery(o) => keep_every::keep_every(o),
}
write!(f, " ; exec R;")?;
Ok(KakMessage(
format!("Sorted {} selections", selections.len()),
None,
))
}
fn read_selections() -> Result<Vec<String>, KakMessage> {
{
let mut f = open_command_fifo()?;
write!(
f,
"echo -quoting shell -to-file {} -- %val{{selections}}",
get_var("kak_response_fifo")?
)?;
}
let selections = shellwords::split(&fs::read_to_string(&get_var("kak_response_fifo")?)?)?;
Ok(selections)
}
fn open_command_fifo() -> Result<File, KakMessage> {
OpenOptions::new()
.write(true)
.append(true)
.open(&get_var("kak_command_fifo")?)
.map_err(|e| e.into())
}
fn get_var(var_name: &str) -> Result<String, KakMessage> {
env::var(var_name).map_err(|e| match e {
env::VarError::NotPresent => {
KakMessage(format!("Env var {} is not defined", var_name), None)
}
env::VarError::NotUnicode(_) => {
KakMessage(format!("Env var {} is not unicode", var_name), None)
}
})
}

47
src/math_eval.rs Normal file
View File

@ -0,0 +1,47 @@
use evalexpr::{eval, Value};
use kakplugin::{get_selections, set_selections, KakError};
use std::borrow::Cow;
#[derive(clap::Args, Debug)]
pub struct Options {
/// Additional arguments to pass to the math evaluator
///
/// For example, you can run `kakutils-rs bc + 5` to add 5 to all selections
extra_math_args: Option<Vec<String>>,
}
pub fn math_eval(options: &Options) -> Result<String, KakError> {
let mut err_count: usize = 0;
let selections = get_selections(None)?;
let extra = options.extra_math_args.as_ref().map(|v| v.join(" "));
set_selections(selections.iter().map(|s| {
match eval(&if let Some(e) = &extra {
Cow::Owned(format!("{s} {e}"))
} else {
Cow::Borrowed(s)
}) {
Ok(Value::Float(f)) => Cow::Owned(f.to_string()),
Ok(Value::Int(f)) => Cow::Owned(f.to_string()),
Ok(_) => Cow::Borrowed(""),
Err(e) => {
eprintln!("Error: {:?}", e);
err_count = err_count.saturating_add(1);
// Set the selection to empty
Cow::Borrowed("")
}
}
}))?;
Ok(if err_count == 0 {
format!("Processed {} selections", selections.len())
} else {
format!(
"Processed {} selections ({} error{})",
selections.len().saturating_sub(err_count),
err_count,
if err_count == 1 { "" } else { "s" }
)
})
}

54
src/pad.rs Normal file
View File

@ -0,0 +1,54 @@
use crate::utils::split_newlines;
use kakplugin::{get_selections, set_selections, KakError};
use std::borrow::Cow;
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(index = 1, help = "Pad with this char", default_value = "0")]
fill: char,
#[clap(short, long, help = "Pad on the right instead of the left")]
right: bool,
}
pub fn pad(options: &Options) -> Result<String, KakError> {
let selections = get_selections(None)?;
let selections_trailing_split: Vec<(&str, &str, &str)> = selections
.iter()
// We don't want leading or trailing newlines to count
.map(|s| split_newlines(s))
.collect();
// The max length of selections with newlines split off
let max_len = selections_trailing_split
.iter()
.map(|(_, s, _)| s.len())
.max()
.ok_or(KakError::CustomStatic("No selections"))?;
let mut num_padded: usize = 0;
let num_total = selections.len();
set_selections(selections_trailing_split.iter().zip(selections.iter()).map(
|((leading_newlines, s, trailing_newlines), orig_s)| match max_len.checked_sub(s.len()) {
Some(0) | None => Cow::Borrowed(orig_s.as_str()),
Some(len) => {
num_padded += 1;
let fill = options.fill.to_string().repeat(len);
let mut ret = (*leading_newlines).to_string();
if options.right {
ret.push_str(s);
ret.push_str(&fill);
} else {
ret.push_str(&fill);
ret.push_str(s);
}
ret.push_str(trailing_newlines);
Cow::Owned(ret)
}
},
))?;
Ok(format!(
"Padded {num_padded} selections ({num_total} total)",
))
}

11
src/rev.rs Normal file
View File

@ -0,0 +1,11 @@
use kakplugin::{get_selections, set_selections, KakError};
#[derive(clap::Args, Debug)]
pub struct Options;
pub fn rev(_options: &Options) -> Result<String, KakError> {
let selections = get_selections(None)?;
set_selections(selections.iter().rev())?;
Ok(format!("Reversed {} selections", selections.len()))
}

396
src/set.rs Normal file
View File

@ -0,0 +1,396 @@
// use crate::utils;
use kakplugin::{
get_register_selections, get_selections, get_selections_with_desc, set_selections_desc,
types::Register, KakError,
};
use linked_hash_map::LinkedHashMap;
use linked_hash_set::LinkedHashSet;
use regex::Regex;
use std::{borrow::Cow, io::Write, str::FromStr};
const KAK_BUFFER_NAME: &str = "*kakplugin-set*";
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(
num_args = 1..=3,
allow_hyphen_values = true,
help = "Register operation and operand. Empty register is current selection. Example: 'a-b' or '+b'"
)]
args: Vec<String>,
#[clap(short, long, help = "Trim each selection before doing set operations")]
skip_whitespace: bool,
// #[clap(short, long)]
#[clap(skip)]
regex: Option<Regex>,
// #[clap(short, long)]
#[clap(skip)]
ignore_case: bool,
// #[clap(short = 'S', long)]
// no_skip_whitespace: bool,
}
#[derive(Clone, Debug)]
enum Operation {
Intersect,
Subtract,
Union,
Compare,
}
impl Operation {
pub const fn to_char(&self) -> char {
match self {
Self::Intersect => '&',
Self::Subtract => '-',
Self::Union => '+',
Self::Compare => '?',
}
}
}
impl FromStr for Operation {
type Err = KakError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"intersect" | "and" | "&" => Ok(Self::Intersect),
"subtract" | "not" | "minus" | "-" | "\\" => Ok(Self::Subtract),
"union" | "or" | "plus" | "+" => Ok(Self::Union),
"compare" | "cmp" | "?" | "=" => Ok(Self::Compare),
_ => Err(KakError::Parse(format!(
"Set operation '{s}' could not be parsed"
))),
}
}
}
pub fn set<'sel>(options: &'_ Options) -> Result<String, KakError> {
// Get the actual operation we are performing
let (left_register, operation, right_register) = parse_arguments(&options.args[..])?;
// Get the selections for the left register and the right register, depending on the arguments
// Underscore is a special case. We will treat it as the current selection
let (left_selections, right_selections) = match (&left_register, &right_register) {
(Register::Underscore, r) => {
let l_selections = get_selections(None)?;
let r_selections = get_register_selections(r)?;
(l_selections, r_selections)
}
(l, Register::Underscore) => {
let r_selections = get_selections(None)?;
let l_selections = get_register_selections(l)?;
(l_selections, r_selections)
}
(l, r) => {
let l_selections = get_register_selections(l)?;
let r_selections = get_register_selections(r)?;
(l_selections, r_selections)
}
};
// Get the frequency of each selection. The count does not matter as much as presence
// Count is used only for compare
let (left_ordered_counts, right_ordered_counts) = (
to_ordered_counts(
options,
left_selections.iter().map(|s| s.as_ref()).collect(),
),
to_ordered_counts(
options,
right_selections.iter().map(|s| s.as_ref()).collect(),
),
);
// Get an ordered set of every key for each register
let (left_keys, right_keys) = (
left_ordered_counts
.keys()
.map(|k| -> &str { k.as_ref() })
.collect::<LinkedHashSet<&str>>(),
right_ordered_counts
.keys()
.map(|k| -> &str { k.as_ref() })
.collect::<LinkedHashSet<&str>>(),
);
// Run the actual set operation
let result = key_set_operation(&operation, &left_keys, &right_keys);
let num_modified = result.len();
match &operation {
Operation::Compare => compare(
left_register,
right_register,
result,
&left_ordered_counts,
&right_ordered_counts,
)?,
Operation::Union => print_result(result)?,
// Intersect/subtract will have at most the number of elements in the current selection
// If the user operated on the current selection, and we can modify the selection descs inplace, do it
Operation::Intersect | Operation::Subtract => {
if left_register == Register::Underscore {
// If the user asked for an intersection or subtraction from the current selection, we can update selection_descs only
// For example (current selection) - (contents of register a) allows us to simply deselect some selections
reduce_selections(options, result)?;
} else {
// The user asked for registers that *aren't* the current selection
// This means either registers don't represent the current selection, or the current selection is on the other side
print_result(result)?;
}
}
}
Ok(match &operation {
Operation::Compare => format!("Compared {} selections", num_modified),
op => format!(
"{}{}{} returned {} selections",
left_register.to_char(),
op.to_char(),
right_register.to_char(),
num_modified
),
})
}
/// Reduces selections to those that are in the `key_set_operation_result`
fn reduce_selections<'sel, 'a>(
options: &Options,
key_set_operation_result: LinkedHashSet<&'sel str>,
) -> Result<(), KakError> {
// The registers should have been read in a draft context
// So the current selection will be unmodified
let selections_with_desc = get_selections_with_desc(None)?;
set_selections_desc(selections_with_desc.into_iter().filter_map(|swd| {
// Does not matter if the operation was - or &
// Since key_set_operation_result contains elements that should be in the resulting set,
// we can just use contains here
let key = crate::utils::get_key(
&swd.content,
!options.skip_whitespace,
options.regex.as_ref(),
options.ignore_case,
);
if key_set_operation_result.contains(key.as_ref()) {
Some(swd.desc)
} else {
None
}
}))?;
Ok(())
}
/// Writes the result of a set operation to a new kak buffer
fn print_result(key_set_operation_result: LinkedHashSet<&str>) -> Result<(), KakError> {
// Manually set selections so we don't have to allocate a string
let mut f = kakplugin::open_command_fifo()?;
// Send all of this into an evaluate-commands block
// -save-regs '"'
write!(
f,
r#"evaluate-commands %{{
set-register '"'"#
)?;
for k in key_set_operation_result {
write!(f, " '{}\n'", kakplugin::escape(k))?;
}
write!(
f,
r#";
edit -scratch '{}';
execute-keys '%<a-R>_';
}}"#,
KAK_BUFFER_NAME
)?;
f.flush()?;
Ok(())
}
/// Writes a comparison table to a new kak buffer
///
/// * `left_register` - Register of the left side
/// * `right_register` - Register of the right side
/// * `key_set_operation_result` - Set of selections after chosen operation
/// * `left_ordered_counts` - Map of ordered counts on `get_key` to frequency on the left side
/// * `right_ordered_counts` - Map of ordered counts on `get_key` to frequency on the right side
fn compare<'sel, 'a, 'b>(
left_register: Register,
right_register: Register,
key_set_operation_result: LinkedHashSet<&'b str>,
left_ordered_counts: &'b LinkedHashMap<Cow<'sel, str>, usize>,
right_ordered_counts: &'b LinkedHashMap<Cow<'sel, str>, usize>,
) -> Result<(), KakError> {
// Manually set selections so we don't have to allocate a string
let mut f = kakplugin::open_command_fifo()?;
// Send all of this into an evaluate-commands block
write!(
f,
r#"evaluate-commands -save-regs '"' %{{
set-register '"'"#
)?;
write!(
f,
" '?\t{}\t{}\tselection\n'",
left_register.to_char(),
right_register.to_char()
)?;
for k in key_set_operation_result {
let left_count = left_ordered_counts.get(k as &str).unwrap_or(&0);
let right_count = right_ordered_counts.get(k as &str).unwrap_or(&0);
write!(
f,
" '{}\t{}\t{}\t{}\n'",
match (*left_count == 0, *right_count == 0) {
(true, true) => "?",
(true, false) => ">",
(false, true) => "<",
(false, false) => "=",
},
left_count,
right_count,
kakplugin::escape(k),
)?;
}
write!(
f,
r#";
edit -scratch '{}';
execute-keys '%<a-R><a-;>3<a-W>L)<a-space>_vb';
}}"#,
KAK_BUFFER_NAME
)?;
f.flush()?;
Ok(())
}
/// Counts frequency of unique selection contents, while preserving document order using a `LinkedHashMap`
///
/// # Returns
///
/// `LinkedHashMap` ordered by document order with `get_key(selection, ...)` as key and frequency of selection
fn to_ordered_counts<'sel>(
options: &Options,
selections: Vec<&'sel str>,
) -> LinkedHashMap<Cow<'sel, str>, usize> {
let mut ret = LinkedHashMap::new();
for i in selections {
let key = crate::utils::get_key(
&i,
!options.skip_whitespace,
options.regex.as_ref(),
options.ignore_case,
);
if key.is_empty() {
// We don't want to even pretend to look at empty keys
continue;
}
let entry: &mut usize = ret.entry(key).or_insert(0);
*entry = entry.saturating_add(1);
}
ret
}
/// Performs an `Operation` on some set of keys
/// * `operation` - The operation to perform
/// * `left_keys` - The set on the left side of the operator
/// * `right_keys` - The set on the right side of the operator
fn key_set_operation<'sel>(
operation: &Operation,
left_keys: &LinkedHashSet<&'sel str>,
right_keys: &LinkedHashSet<&'sel str>,
) -> LinkedHashSet<&'sel str> {
match operation {
Operation::Intersect => left_keys
.intersection(right_keys)
// .into_iter()
.copied()
.collect(),
Operation::Subtract => left_keys.difference(right_keys).copied().collect(),
Operation::Compare | Operation::Union => left_keys.union(right_keys).copied().collect(), // TODO: Symmetric difference?
}
}
/// Parses the arguments used for set manipulation
///
/// Arguments can be given like `a-b`, `a - b`
fn parse_arguments(args: &[String]) -> Result<(Register, Operation, Register), KakError> {
let args = if args.len() == 1 {
// They gave us something like "a-b" or "c?d"
args.iter()
.flat_map(|s: &String| s.trim().chars())
.map(String::from)
.collect::<Vec<String>>()
} else {
// They gave us something like "a - b" or "c compare d"
args.to_vec()
};
let (left_register, middle, right_register) = match &args[..] {
[l, r] => {
// They only gave us two arguments like "- a" or "b -"
match (Operation::from_str(l), Operation::from_str(r)) {
// If the operation is on the left, then the _ register is the leftmost one
(Ok(o), Err(_)) => Ok((Register::Underscore, o, Register::from_str(r)?)),
// If the operation is on the right, then the _ register is the rightmost one
(Err(_), Ok(o)) => Ok((Register::from_str(l)?, o, Register::Underscore)),
(Ok(_), Ok(_)) => Err(KakError::Custom(format!(
"Arguments '{l}' and '{r}' cannot both be operations"
))),
(Err(_), Err(_)) => Err(KakError::Custom(
"One argument must be an operation".to_string(),
)),
}
}
[l, middle, r] => {
// They gave us three arguments like "a - b" or "_ + a"
Ok((
Register::from_str(l)?,
Operation::from_str(middle)?,
Register::from_str(r)?,
))
}
[middle] => {
// They gave us one argument like "-"
// Default to (current selection)(operation)(^ register (set with Z)) => _-^
Ok((
Register::Underscore,
Operation::from_str(middle)?,
Register::Caret,
))
}
_ => Err(KakError::Custom(format!(
"Invalid arguments to set command: {args:?}"
))),
}?;
if left_register == right_register {
return Err(KakError::Custom(format!(
"Registers passed are the same: '{}'",
left_register.to_char()
)));
}
Ok((left_register, middle, right_register))
}

14
src/shuf.rs Normal file
View File

@ -0,0 +1,14 @@
use kakplugin::{get_selections, set_selections, KakError};
use rand::{seq::SliceRandom, thread_rng};
#[derive(clap::Args, Debug)]
pub struct Options;
pub fn shuf(_options: &Options) -> Result<String, KakError> {
let mut selections = get_selections(None)?;
let mut rng = thread_rng();
selections.shuffle(&mut rng);
set_selections(selections.iter())?;
Ok(format!("Shuf {} selections", selections.len()))
}

226
src/sort.rs Normal file
View File

@ -0,0 +1,226 @@
use alphanumeric_sort::compare_str;
use clap::ArgAction;
use kakplugin::{self, get_selections_with_desc, open_command_fifo, KakError, SelectionWithDesc};
use regex::Regex;
use std::{borrow::Cow, cmp::Ordering, io::Write};
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(index = 1, help = "Optional regex comparison key")]
regex: Option<Regex>,
#[clap(
short = 's',
long,
help = "Optional register for using subselection matching"
)]
subselections_register: Option<char>,
// TODO: Can we invert a boolean? This name is terrible
// #[clap(short = 'S', long, value_parser = invert_bool, default_value_t, help = "Do not treat trimmed value of selections when sorting")]
#[clap(short = 'S', long, action = ArgAction::SetFalse, default_value_t, help = "Do not treat trimmed value of selections when sorting")]
no_skip_whitespace: bool,
#[clap(short = 'L', long, help = "Do not sort numbers lexicographically")]
no_lexicographic_sort: bool,
#[clap(short, long, help = "Reverse sorting")]
reverse: bool,
#[clap(short, long, help = "Ignore case when sorting")]
ignore_case: bool,
}
// fn invert_bool(s: &str) -> Result<bool, &'static str> {
// // Invert the boolean
// match s {
// "false" => Ok(true),
// "true" => Ok(false),
// _ => Err("Unparsable boolean value"),
// }
// }
struct SortableSelection<'a> {
/// The content of the selection
selection: &'a SelectionWithDesc,
/// The string used to compare the content
content_comparison: Cow<'a, str>,
/// Any subselections
subselections: Vec<&'a str>,
}
/// Gets a Vec of sortable selections with a given list of subselections and descriptions
/// TODO: Implement sort by subselection
// fn get_sortable_selections_subselections<'a, 'b, 'tmp, S: AsRef<str> + std::fmt::Debug + 'a>(
// options: &'b Options,
// selections: Vec<SelectionWithDesc>,
// subselections: Vec<SelectionWithDesc>,
// ) -> Result<Vec<SortableSelection<'a>>, KakMessage> {
// let mut sortable_selections = selections
// .iter()
// .zip(selections_desc.iter())
// .map(|(s, sd)| {
// Ok((
// to_sortable_selection(s.as_ref(), options),
// SelectionDesc::from_str(sd.as_ref())?,
// ))
// })
// .collect::<Result<Vec<(SortableSelection, SelectionDesc)>, KakMessage>>()?;
// let mut subselections = subselections
// .iter()
// .zip(subselections_desc.iter())
// // Bind selection with associated description
// // Sort descriptions so left is always <= right
// .map(|(s, sd)| Ok((s.as_ref(), SelectionDesc::from_str(sd.as_ref())?.sort())))
// .collect::<Result<Vec<(&str, SelectionDesc)>, KakMessage>>()?;
// // Sort subselections by description
// subselections.sort_by(|(_, ssd_a), (_, ssd_b)| ssd_a.cmp(ssd_b));
// // For each selection, check if they contain any subselections
// // If so, add them to the subselections vector
// // TODO: This is O(n^2), but can be made more efficient since subselections is sorted
// for (s, s_desc) in &mut sortable_selections {
// for i in &subselections {
// if s_desc.contains(&i.1) {
// s.subselections.push(i.0);
// }
// }
// }
// sortable_selections.sort_by(|(a, _), (b, _)| {
// // First, check if there are any subselection comparisons to be made
// // If one has more subselections than the other, stop comparing
// for (a_subsel, b_subsel) in a.subselections.iter().zip(b.subselections.iter()) {
// match a_subsel.cmp(b_subsel) {
// // These subselections are equal, so we can't do anything
// Ordering::Equal => continue,
// // We found a difference, so return the comparison
// o => return o,
// }
// }
// // No subselections mismatched, so compare the (possibly trimmed) content
// a.content_comparison.cmp(b.content_comparison)
// });
// Ok(sortable_selections.into_iter().map(|(s, _)| s).collect())
// }
fn to_sortable_selection<'a, 'b>(
selection: &'a SelectionWithDesc,
options: &'b Options,
) -> SortableSelection<'a> {
SortableSelection {
selection,
// TODO: Properly use Cow
content_comparison: crate::utils::get_key(
&selection.content,
!options.no_skip_whitespace,
options.regex.as_ref(),
options.ignore_case,
)
.into(),
subselections: vec![],
}
}
pub fn sort(options: &Options) -> Result<String, KakError> {
// subselections is Some if the user requests it in subselections_register
// It will "exec z" to restore the selections before setting selections
// If subselections is None, "exec z" is not called
let subselections: Option<Vec<SelectionWithDesc>> = options
.subselections_register
.map::<Result<_, KakError>, _>(|c| {
let subselections = get_selections_with_desc(None)?;
kakplugin::cmd(&format!("exec {}", c))?;
Ok(subselections)
})
.transpose()?;
let selections = get_selections_with_desc(None)?;
let mut zipped: Vec<SortableSelection<'_>> = match (&options.regex, &subselections) {
(Some(_), Some(_)) => {
return Err(KakError::Custom(
"Cannot pass regex and subselections register".to_string(),
))
}
(None, None) => {
// Do a regular sort on the content
selections
.iter()
.map(|s| to_sortable_selection(s, options))
.collect()
}
(Some(_regex), None) => {
// Sort based on the regular expression
selections
.iter()
.map(|s| to_sortable_selection(s, options))
.collect()
// TODO: Figure out if this is fine
// selections
// .iter()
// .map(|s| {
// let mut sortable_selection = to_sortable_selection(s, options);
// if let Some(regex_match) = (|| {
// let captures = regex.captures(sortable_selection.content_comparison)?;
// captures
// .get(1)
// .or_else(|| captures.get(0))
// .map(|m| m.as_str())
// })() {
// sortable_selection.content_comparison = regex_match;
// }
// sortable_selection
// })
// .collect()
}
(None, _) => {
// Sort based on subselections
return Err(KakError::NotImplemented(
"Sort by subselection is not yet implemented",
));
}
};
zipped.sort_by(|a, b| {
// First, try sorting by subselection. This won't iterate anything if either is None (regex and default mode)
for (a_subselection, b_subselection) in a.subselections.iter().zip(b.subselections.iter()) {
let comparison = if options.no_lexicographic_sort {
a_subselection.cmp(b_subselection)
} else {
compare_str(&a_subselection, &b_subselection)
};
// If the comparison is not equal, stop here
if comparison != Ordering::Equal {
return comparison;
}
}
// Otherwise, default to comparing the content
if options.no_lexicographic_sort {
a.content_comparison.cmp(&b.content_comparison)
} else {
compare_str(&a.content_comparison, &b.content_comparison)
}
});
let mut f = open_command_fifo()?;
write!(f, "reg '\"'")?;
let iter: Box<dyn Iterator<Item = _>> = if options.reverse {
Box::new(zipped.iter().rev())
} else {
Box::new(zipped.iter())
};
for i in iter {
let new_selection = i.selection.content.replace('\'', "''");
write!(f, " '{}'", new_selection)?;
}
write!(f, " ; exec R;")?;
f.flush()?;
Ok(format!("Sorted {} selections", zipped.len()))
}

56
src/trim.rs Normal file
View File

@ -0,0 +1,56 @@
use kakplugin::{get_selections, open_command_fifo, KakError};
use std::io::Write;
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(short, long, help = "Trim from left")]
left: bool,
#[clap(short, long, help = "Trim right side")]
right: bool,
#[clap(
short,
long,
help = "If selection ends in a newline, do not add the newline back after trimming"
)]
no_preserve_newline: bool,
}
pub fn trim(options: &Options) -> Result<String, KakError> {
let selections = get_selections(None)?;
let mut f = open_command_fifo()?;
write!(f, "reg '\"'")?;
let mut num_trimmed: usize = 0;
let num_selections = selections.len();
for i in selections.into_iter().map(|s| {
let new_string = match (options.left, options.right) {
(true, true) | (false, false) => {
// Either they specified both, or neither
s.trim()
}
(true, false) => s.trim_start(),
(false, true) => s.trim_end(),
};
if s.len() != new_string.len() {
num_trimmed = num_trimmed.saturating_add(1);
}
if !options.no_preserve_newline && s.ends_with('\n') {
new_string.to_owned() + "\n"
} else {
new_string.to_owned()
}
}) {
write!(f, " '{}'", i.replace('\'', "''"))?;
}
write!(f, " ; exec R;")?;
f.flush()?;
Ok(format!(
"Trimmed {} selections ({} changed)",
num_selections, num_trimmed
))
}

72
src/uniq.rs Normal file
View File

@ -0,0 +1,72 @@
use crate::utils;
use kakplugin::{
get_selections_desc, get_selections_with_desc, set_selections, set_selections_desc, KakError,
SelectionWithDesc,
};
use regex::Regex;
use std::collections::BTreeSet;
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(index = 1, help = "Optional regex to compare unique elements")]
regex: Option<Regex>,
#[clap(short, long, help = "Ignore the case when comparing")]
ignore_case: bool,
// TODO: Can we invert a boolean? This name is terrible
#[clap(short = 'S', long, help = "Do not skip whitespace when comparing")]
no_skip_whitespace: bool,
}
pub fn uniq(options: &Options) -> Result<String, KakError> {
let mut selections = get_selections_with_desc(None)?;
// Sort selections so the first element is the unique one, not an arbitrary one based on primary selection
selections.sort_by_key(|s| s.desc.sort());
// Set the new selection types
let new_selections: Vec<Option<SelectionWithDesc>> = selections
.into_iter()
// Create a BTreeSet of hashes of selections. This way, string content is not stored, but uniqueness can be determined
.scan(BTreeSet::new(), |state, sd| {
let hash = utils::get_hash(
&sd.content,
!options.no_skip_whitespace,
options.regex.as_ref(),
options.ignore_case,
);
// Try inserting to the hash
if state.insert(hash) {
// True if this is a string we haven't seen before
Some(Some(sd))
} else {
// Nothing was inserted because we already saw this string
// Return Some(None) so the iterator can continue
Some(None)
}
})
.collect();
set_selections(new_selections.iter().map(|i| match i {
Some(s) => &s.content,
None => "",
}))?;
// Deselect all `None` strings (all rows that have been seen before)
let mut new_selections_desc = get_selections_desc::<&str>(None)?;
new_selections_desc.sort();
set_selections_desc(
// Refresh seelections_desc because positions have changed
new_selections_desc
.iter()
.zip(new_selections.iter())
// If the string was emptied (None), then do not set `sd`
.filter_map(|(sd, s)| if s.is_some() { Some(sd) } else { None }),
)?;
let old_count = new_selections.len();
let new_count = new_selections.iter().flatten().count();
Ok(format!(
"{} unique selections out of {}",
new_count, old_count
))
}

96
src/utils.rs Normal file
View File

@ -0,0 +1,96 @@
// use kakplugin::Selection;
use regex::Regex;
use std::{
borrow::Cow,
collections::hash_map::DefaultHasher,
hash::{Hash, Hasher},
};
/// Gets a key out of a selection
///
/// # Examples
///
/// ```
/// assert_eq!(get_key(" asdf\n", false, None, false), "asdf\n");
/// assert_eq!(get_key(" asdf\n", true, None, false), " asdf\n");
/// assert_eq!(get_key(" as1f\n", false, Some("\w+"), false), "as");
/// assert_eq!(get_key(" aS1F\n", false, Some("\w+"), true), "as1f");
/// ```
pub fn get_key<'sel>(
selection: &'sel str,
preserve_whitespace: bool,
regex: Option<&Regex>,
ignore_case: bool,
) -> Cow<'sel, str> {
// Strip whitespace if requested
let mut key = if preserve_whitespace {
// TODO: Does this need to be swapped?
selection
} else {
selection.trim()
};
// If they requested a regex match, set the key to the string slice of that match
if let Some(regex_match) = (|| {
// let captures = regex.as_ref()?.captures(&key)?;
let captures = regex.as_ref()?.captures(key)?;
captures
.get(1)
.or_else(|| captures.get(0))
.map(|m| m.as_str())
})() {
key = regex_match;
// Cow::Borrowed(regex_match)
}
// Ignore case if requested
if ignore_case {
// Lowercase at the end to not mangle regex
// TODO: Do not allocate if it is already lowercased
// Need to_lowercase(&self) -> Cow<str>
if !key.as_bytes().iter().any(u8::is_ascii_uppercase) {
Cow::Borrowed(key)
} else {
Cow::Owned(key.to_ascii_lowercase())
}
} else {
Cow::Borrowed(key)
}
}
/// Get a key out of a selection based on options
pub fn get_hash(
// TODO: Accept any Into<AsRef<Selection>>
selection: &str,
preserve_whitespace: bool,
regex: Option<&Regex>,
ignore_case: bool,
) -> u64 {
let mut hasher = DefaultHasher::new();
get_key(&selection, preserve_whitespace, regex, ignore_case).hash(&mut hasher);
hasher.finish()
}
/// Splits an `&str` into (`leading_newlines`, `string_value`, `trailing_newlines`)
///
/// # Examples
///
/// ```
/// assert_eq!(split_newlines("asdf\n"), ("", "asdf", "\n"));
/// assert_eq!(split_newlines("asdf\n\nhjk\n"), ("", "asdf\n\nhjk", "\n"));
/// assert_eq!(split_newlines("\nasdf\n\nhjk\n"), ("\n", "asdf\n\nhjk", "\n"));
/// assert_eq!(split_newlines("asdf"), ("", "asdf", ""));
/// assert_eq!(split_newlines("\n\n\nasdf"), ("\n\n\n", "asdf", ""));
/// assert_eq!(split_newlines(""), ("", "", ""));
/// ```
pub fn split_newlines(s: &'_ str) -> (&'_ str, &'_ str, &'_ str) {
let (leading_newlines, s) = s.find(|c| c != '\n').map_or(("", s), |idx| s.split_at(idx));
let (s, trailing_newlines) = s
.rfind(|c| c != '\n')
.map_or((s, ""), |idx| s.split_at(idx + 1));
(leading_newlines, s, trailing_newlines)
}

49
src/xargs.rs Normal file
View File

@ -0,0 +1,49 @@
use kakplugin::{get_selections_with_desc, set_selections_failable, KakError};
use std::{
io::{BufRead, BufReader, Write},
process::{Command, Stdio},
};
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap()]
command: String,
#[clap(allow_hyphen_values = true)]
args: Vec<String>,
}
pub fn xargs(options: &Options) -> Result<String, KakError> {
let mut child = Command::new(&options.command)
.args(&options.args)
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.spawn()
.expect("Failed to spawn child process");
let mut child_stdin = child.stdin.take().expect("Failed to open stdin");
let handle = std::thread::spawn(move || -> Result<(), KakError> {
for s in get_selections_with_desc(None)? {
write!(child_stdin, "{}\0", s.content)?;
}
Ok(())
});
let set_selections_result = set_selections_failable(
BufReader::new(child.stdout.take().expect("Failed to get stdout"))
.split(b'\0')
// TODO: Support non-utf8?
.map(|s| -> Result<_, KakError> { Ok(String::from_utf8(s?)?) }),
);
// Wait for the background process to exit
// Return its error (if there is one) first
handle
.join()
.map_err(|_e| KakError::Custom("Could not join background process".to_string()))??;
// Now print any errors
let num_set = set_selections_result?;
Ok(format!(
"Set {} selections from {}",
num_set, options.command
))
}

98
src/xlookup.rs Normal file
View File

@ -0,0 +1,98 @@
use crate::utils::get_hash;
use kakplugin::{get_selections, set_selections, types::Register, KakError, Selection};
use std::{
borrow::Cow,
collections::{
btree_map::Entry::{Occupied, Vacant},
BTreeMap,
},
};
#[derive(clap::Args, Debug)]
pub struct Options {
#[clap(help = "Register with the lookup table", default_value = "^")]
register: Register,
}
pub fn xlookup(options: &Options) -> Result<String, KakError> {
eprintln!("Getting registers for {options:?}");
let lookup_table = build_lookuptable(kakplugin::get_register_selections(options.register)?)?;
// let lookup_table = build_lookuptable(kakplugin::reg(options.register, None)?)?;
let selections = get_selections(None)?;
let mut err_count: usize = 0;
set_selections(selections.iter().map(|key| {
lookup_table
.get(&get_hash(&key, false, None, false))
.map_or_else(
|| {
eprintln!("Key '{key}' not found",);
err_count += 1;
Cow::Borrowed("")
},
|s| Cow::Owned(ToString::to_string(s)),
)
}))?;
Ok(if err_count == 0 {
format!("Xlookup {} selections", selections.len())
} else {
format!(
"Xlookup {} selections ({} error{})",
selections.len().saturating_sub(err_count),
err_count,
if err_count == 1 { "" } else { "s" }
)
})
}
fn build_lookuptable(mut selections: Vec<Selection>) -> Result<BTreeMap<u64, Selection>, KakError> {
let mut iter = selections.array_chunks_mut();
let ret = iter.try_fold(BTreeMap::new(), |mut acc, [key, value]| {
match acc.entry(get_hash(&key, false, None, false)) {
Occupied(_) => Err(KakError::Custom(format!("Duplicate key '{key}'"))),
Vacant(v) => {
v.insert(value.clone());
Ok(acc)
}
}
})?;
if !iter.into_remainder().is_empty() {
Err(KakError::CustomStatic("Odd number of selections"))
} else if ret.is_empty() {
Err(KakError::CustomStatic("No selections"))
} else {
Ok(ret)
}
}
#[cfg(test)]
mod tests {
use super::*;
macro_rules! blt {
($($x:expr),+ $(,)?) => {
build_lookuptable(vec![$($x.to_string()),+])
}
}
macro_rules! hsh {
($expr:expr) => {
get_hash($expr, false, None, false)
};
}
#[test]
fn test_build_lookuptable() {
// Must be an even number
assert!(blt!["1", "b", "c"].is_err());
// Duplicate key
assert!(blt!["1", "b", "2", "c", "2", "d"].is_err());
// Valid
assert!(blt!["1", "b", "2", "c"].is_ok());
let lt = blt!["1", "b", "2", "c"].unwrap();
assert_eq!(lt.get(&hsh!("1")), Some(&String::from("b")));
assert_eq!(lt.get(&hsh!("2")), Some(&String::from("c")));
assert_eq!(lt.get(&hsh!("3")), None);
}
}